2、设有如下所示的关系 S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和 SC(S#,C#,GRADE),试用关系代数表达式表示下
列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。(1). ∏C#,CNAME(σTEACHER=‘程军’(C))
(2)检索年龄大于 21 的男学生学号(S#)和姓名(SNAME)。 (2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C))
(3) 检 索 至 少 选 修 “ 程 军 ” 老 师 所 授 全 部 课 程 的 学 生 姓 名 (SNAME) 。 (3). ∏SNAME{swv
[∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]}
(4)检索”李强”同学不学课程的课程号(C#)。(4). ∏C#(C)- ∏C#(σSNAME=‘李强’(S) wv SC)
(5)检索至少选修两门课程的学生学号(S#)。(5). ∏S#(σ[1]=[4]∧[2]≠[5] (SC × SC))
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。(6). ∏C#,CNAME(Cwv (∏S#,C#(sc)÷∏S#(S)))
(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。(7). ∏S#(SCwv ∏C#(σTEACHER=‘程军’(C)))
(8)检索选修课程号为 k1 和 k5 的学生学号(S#)。(8). ∏S#,C#(sc)÷∏C#(σC#=’k1’∨ C#=’k5’(C))
(9)检索选修全部课程的学生姓名(SNAME)。(9). ∏SNAME{swv [∏S#,C#(sc)÷∏C#(C)]}
(10)检索选修课程包含学号为 2 的学生所修课程的学生学号(S#)。(10). ∏S#,C#(sc)÷∏C#(σS#=’2’(SC))
(11)检索选修课程名为“C 语言”的学生学号(S#)和姓名(SNAME)。(11). ∏S#,SNAME{swv [∏S#(SCwv σCNAME=‘C
语言’(C))]}
3、设学生课程数据库中有三个关系:
(
1
)检索选修课程名称为“
MATHS
”
的学生的学号与姓名。
(1)SELECT SNAME,AGE FROM S,SC,C WHERE S.S#=SC.S#
AND C.C#=SC.C# AND CNAME=’ MATHS’
(2)检索至少学习了课程号为“C1”和“C2”的学生的学号(2) SELECT S# FROM SC WHERE CNO=’C1’ AND S#
IN( SELECT S#
FROM SC WHERE CNO=’C2’)
(3)检索年龄在 18 到 20 之间(含 18 和 20)的女生的学号、姓名和年龄(3) SELECT S#,SNAME,AGE FROM S
WHERE AGE BETWEEN 18 AND 20
(4)检索平均成绩超过 80 分的学生学号和平均成绩(4) SELECT S# ,AVG(GRADE) ‘平均成绩’ FROM SC GROUP BY
S# HAVING AVG(GRADE)>80
(5)检索选修了全部课程的学生姓名 (5) SELECT SNAME FROM S WHERE NOT EXISTS ( SELECT *
FROM C
WHERE NOT EXISTS ( SELECT * FROM SC WHERE S#=S.S# AND C#=C.C# ))
(6)检索选修了三门课以上的学生的姓名(6) SELECT SNAME FROM S,SC WHERE S.S#=SC.S#
GROUP BY SNAME HAVING COUNT(*)>3
4、设学生-课程数据库中包括三个表:
(1)查询选修课程包括“1042
”
号学生所学的课程的学生学号 (1) SELECT DISTINCT SNO FROM SC SCX
WHERE NOT EXISTS ( SELECT * FROM SC SCY WHERE SCY.SNO = ' 1042' AND NOT EXISTS ( SELECT * FROM
SC , CZ WHERE SCZ.SNO=SCX.SNO AND SCZ.CNO=SCY.CNO))
;
(2)创建一个计科系学生信息视图 S_CS_VIEW,包括 Sno 学号、Sname 姓名、Sex 性别; (2) CREATE VIEW S_CS_VIEW
As
SELECT SNO ,SNAME,SEX FROM STUDENT WHERE Sdept=’CS’
(
3
)通过上面第
2
题创建的视图修改数据,把王平的名字改为王慧平
(3) UPDATE S_CS_VIEW SET SNAME=’
王慧平’
WHERE SNAME=’ 王平’
(
4
)创建一选修数据库课程信息的视图,视图名称为
datascore_view
,包含学号、姓名、成绩。
(4) CREATE VIEW datascore_view
AS SELECT SNO 学号、SNAME 姓名、GRADE 成绩 FROM STUDENT,SC,COURSE WHERE STUDENT.SNO=SC.SNO AND
评论