数据库题:学生表,选课表,课程表

时间:2021-11-05 14:51:14

设教学数据库中有三个基本表:

学生表 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)