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

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

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

设教学数据库中有三个基本表: 学生表 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)
经验分享 程序员 微信小程序 职场和发展