1. 用SELECT--SQL命令完成以下查询。假设有关系:student(学号,姓名,系别);course(课程号,课程名,任课教师编号,课时);grade(学号,课程号,成绩)
①查询平均成绩在75分以上(包括75分)的课程,按课程号升序列出课程号、课程名、平均成绩
②列出课教师编号及其所任课程的课时总数
2. 用SELECT--SQL命令完成以下查询,并将查询结果输出指定的临时表。假设在学生成绩数据库中存在student(学号,姓名,出生日期,专业,奖学金)、grade(学号,课程号,成绩)两张表
①查询student表中“计算机”和“金融”专业所有学生的学号、姓名、性别及专业信息,要求将查询结果保存到名为query1.dbf表中
②查询student表中姓“王”或姓名中带有“伟”字的学生信息,要求将查询结果保存到名为query2.dbf表中
3. 用命令方式建立以下视图。(各表结构同上)①根据student表,查询各专业的学生人数、平均奖学金、最高奖学金,要求查询结果使用标题名称,视图名取为V1
②根据student和grade,查询有不及格成绩记录的学生的学号、姓名和年龄,视图名取为V2
③根据student和grade,查询“工商管理”专业所有学生的学生情况,包括学生学号、姓名、课程号、成绩信息。假如某个学生在grade表中没有其对应的记录,也要显示出该学生的信息。提示:用LEFT JOIN子句进行内部左联接,视图名取为V3
4.编一程序,输出半径在1到10之间、面积超过100的圆的半径及面积。
①查询平均成绩在75分以上(包括75分)的课程,按课程号升序列出课程号、课程名、平均成绩
②列出课教师编号及其所任课程的课时总数
2. 用SELECT--SQL命令完成以下查询,并将查询结果输出指定的临时表。假设在学生成绩数据库中存在student(学号,姓名,出生日期,专业,奖学金)、grade(学号,课程号,成绩)两张表
①查询student表中“计算机”和“金融”专业所有学生的学号、姓名、性别及专业信息,要求将查询结果保存到名为query1.dbf表中
②查询student表中姓“王”或姓名中带有“伟”字的学生信息,要求将查询结果保存到名为query2.dbf表中
3. 用命令方式建立以下视图。(各表结构同上)①根据student表,查询各专业的学生人数、平均奖学金、最高奖学金,要求查询结果使用标题名称,视图名取为V1
②根据student和grade,查询有不及格成绩记录的学生的学号、姓名和年龄,视图名取为V2
③根据student和grade,查询“工商管理”专业所有学生的学生情况,包括学生学号、姓名、课程号、成绩信息。假如某个学生在grade表中没有其对应的记录,也要显示出该学生的信息。提示:用LEFT JOIN子句进行内部左联接,视图名取为V3
4.编一程序,输出半径在1到10之间、面积超过100的圆的半径及面积。
2.insert into query1 select 学号,姓名,专业,性别 from student where 专业='计算机' or 专业='金融'insert into query2 select * form student,grade where student.学号=grade.学号 and ( student.姓名 like '王%' or student.姓名 like '%伟%' )
这是我自己写的,也不知道有没有错,希望朋友们来帮我一下,可以吗??
①查询平均成绩在75分以上(包括75分)的课程
select a.课程名,a.课程号,avg(b.成绩) 平均成绩
from course a left join grade b
on a.课程号 = b.课程号
group by a.课程名,a.课程号
order by a.课程名,a.课程号
having avg(b.成绩) > 75
??
就是整数的话。 ---要不然谁没办法 VAR I:Integer;
S:Real;
begin
RichEdit1.Lines.Clear;
for I :=1 to 10 do
begin
S:=3.1415926*I*I;
IF S>100 THEN
RichEdit1.Lines.Add(IntToStr(I)+'----'+ FloatToStr(S))
end;
end;
select a.课程名,a.课程号,avg(b.成绩) 平均成绩
from course a ,grade b
where a.课程号 = b.课程号
group by a.课程名,a.课程号
order by a.课程号
having avg(b.成绩) >= 75
CREATE PROCEDURE [dbo].[listrs] @interval numeric(8,4),@min numeric(8,4),@max numeric(8,4) AS
begin
declare @pi numeric(8,4),@r numeric(8,4)
set @pi=3.1415926create table #temptb([r] numeric(8,4) not null)set @r=@min
while @r<=@max
begin
insert into #temptb(r) values (@r)
set @r=@r+@interval
endselect r,@pi*r*r as s from #temptb
where @pi*r*r>100drop table #temptb
end
GO--第一个参数是间隔,第二个是最小值,第三个是最大值
--执行语句如下
exec listrs 1,1,10/*结果如下:
r s
6.0000 113.097600000000
7.0000 153.938400000000
8.0000 201.062400000000
9.0000 254.469600000000
10.0000 314.160000000000
*/
①查询平均成绩在75分以上(包括75分)的课程
select course.课程名,grade.课程号,avg(成绩) from course,grade where
course.课程号=grade.课程号
group by a.课程名,a.课程号
having avg(成绩)>=75
order by grade.课程号 asc
②列出课教师编号及其所任课程的课时总数
你要的是这样格式:
select 任课教师编号 ,sum(课时) as 课时总数 from course group by 任课教师编号
还是样样呢:
select 任课教师编号,课程名,(select sum(课时) from course b where a.任课教师编号=b.任课教师编号 group by b.任课教师编号) as 课时总数 from course a order by a.任课教师编号
①查询student表中“计算机”和“金融”专业所有学生的学号、姓名、性别及专业信息
student(学号,姓名,出生日期,专业,奖学金),性別那里來????
select 学号,姓名,专业 from student where 专业 in ('计算机'和'金融')
②查询student表中姓“王”或姓名中带有“伟”字的学生信息
select * from student where 姓名 like '王%' or 姓名 like '%伟%'
①根据student表,查询各专业的学生人数、平均奖学金、最高奖学金,要求查询结果使用标题名称,视图名取为V1
student(学号,姓名,出生日期,专业,奖学金)
create view v1 as
select 专业,count(学号)as 专业人数,avg(奖学金) as 平均奖学金 max(奖学金) as 最高奖学金
group by 专业根据student和grade,查询有不及格成绩记录的学生的学号、姓名和年
龄,视图名取为V2
grade(学号,课程号,成绩)
create view v2 as
select a.学号,b.姓名 from grade a ,student b where a.学号=b.学号 and a.成绩<60
③根据
student和grade,查询“工商管理”专业所有学生的学
生情况,包括学生学号、姓名、课程号、成绩信息
create view v3 as
select a.学号,a.姓名,b.课程号,b.成绩 from student left join grade
on( a.学号=b.学号) where a.专业='工商管理'