设教学数据库中有三个基本表:
学生表 S(S#,SNAME,AGE,SEX),其属性表示学生的学号、姓名、年龄和性别;选课表 SC(S#,C#,GRADE),其属性表示学生的学号、所学课程的课程号和成绩;课程表 C(C#,CNAME,TEACHER),其属性表示课程号、课程名称和任课教师姓名。 下面的题目都是针对上述三个基本表操作的。
(1)写出检索全是女同学选修的课程的课程号的SQL语句。
select C#
from S,SC
where S.S#=SC.S# and S.SEX='女'
(2)写出下列插入操作的SQL语句:把SC表中每门课程的平均成绩插入到另一个已存在的表SC_C(C#,CNAME, AVG_GRADE)中,其中 AVG_GRADE 为每门课程的平均成绩。
insert into SC_C
select SC.C#,C.CNAME,AVG(SC.GRADE)
from SC,C
group by C#
(3)试写出下列删除操作的SQL语句:从SC表中把WU老师的女学生选课元组删去。
delete from SC
where S# in
(select S# from S where SEX='女')
and C# in
(select C# from C where TEACHER='WU ')
(4)写出检索每门课程前五名的学生姓名
SELECT SNAME
FROM S,SC
WHERE S.S#=SC.S#
AND SC.GRADE IN
(SELECT TOP 5 GRADE FROM SC GROUP BY C# ORDER BY GRADE DESC)