(1)检索李军老师所授课程的课程号和课程名
(2)检索至少选修李军老师所授全部课程的学生姓名
(3)检索至少选修两门课程的学生学号
(4)检索选修课程包含李军老师所授课程之一的学生学号
(5)检索选修全部课程的学生姓名
(6)检索选修课程名为C语言的学生学号和姓名
(7)检索年龄大于21的男学生学号和姓名
(8)检索钱恒同学不学课程的课程号
(9)检索全部学生都选修的课程的课程号和课程名
(10)检索选修课程号为K1和K6的学生学号
(11)检索选修课程包含学号为2的学生所修课程的学生学号
设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。
(4)检索”李强”同学不学课程的课程号(C#)。
(5)检索至少选修两门课程的学生学号(S#)。
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。
(8)检索选修课程号为k1和k5的学生学号(S#)。
(9)检索选修全部课程的学生姓名(SNAME)。
(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。
(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。
解:本题各个查询语句对应的关系代数表达式表示如下:
(1). ∏C#,CNAME(σTEACHER=‘程军’(C))
(2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C))
(3). ∏SNAME{s? [∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]}
(4). ∏C#(C)- ∏C#(σSNAME=‘李强’(S) ? SC)
(5). ∏S#(σ[1]=[4]∧[2]≠[5] (SC × SC))
(6). ∏C#,CNAME(C? (∏S#,C#(sc)÷∏S#(S)))
(7). ∏S#(SC? ∏C#(σTEACHER=‘程军’(C)))
(8). ∏S#,C#(sc)÷∏C#(σC#=’k1’∨ C#=’k5’(C))
(9). ∏SNAME{s? [∏S#,C#(sc)÷∏C#(C)]}
(10). ∏S#,C#(sc)÷∏C#(σS#=’2’(SC))
(11). ∏S#,SNAME{s? [∏S#(SC? σCNAME=‘C语言’(C))]}