题目来自百度文库,这里摘录出来方便复习。 ⋈为连接符号。
------------------------------------------------------------------------------------------------------------------------------------------------------
1、设有如下所示的关系:学生表S(S#,SNAME,AGE,SEX)、课程表C(C#,CNAME,TEACHER)和学生选课表SC(S#,C#,GRADE),其中:S#为学号,SNAME为姓名,AGE为年龄,SEX为性别,C#为课程号,CNAME为课程名,GRADE为成绩, TEACHER为教师。
试用关系代数表达式表示下列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
πC#,CNAME(σTEACHER=‘程军’(C))
(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
πS#,SNAME(σAGE>21∧SEX=‘男’(S))
(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。
πSNAME(S⋈ (πS#,C#(SC)÷πC#(σTEACHER=‘程军’(C))))
(4)检索“李强”同学不学课程的课程号(C#)。
πC#(C)-πC#(σSNAME=‘李强’(S)⋈SC)
(5)检索至少选修两门课程的学生学号(S#)。
πS#(σ1=4∧2≠5(SC × SC))
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
πC#,CNAME(C⋈(πS#,C#(SC)÷πS#(S)))
(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。
πS#(SC⋈πC#(σTEACHER=‘程军’(C)))
(8)检索选修课程号为K1和K5的学生学号(S#)。
πS#,C#(SC)÷πC#(σC#=’k1’∨ C#=’k5’(C))
(9)检索选修全部课程的学生姓名(SNAME)。
πSNAME(S⋈(πS#,C#(SC)÷πC#(C)))
(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。
πS#,C#(SC)÷πC#(σS#=’2’(SC))
(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。
πS#,SNAME(S⋈(πS#(SC⋈σCNAME=‘C语言’(C))))
2、设有如下所示的关系:学生表S(S#,SNAME,AGE,SEX)、课程表C(C#,CNAME,TEACHER)和学生选课表SC(S#,C#,GRADE),其中:S#为学号,SNAME为姓名,AGE为年龄,SEX为性别,C#为课程号,CNAME为课程名,GRADE为成绩, TEACHER为教师。
试用关系代数表达式表示下列查询语句:
(1)检索LIU老师所授课程的课程号和课程名;
πC#,CNAME(σTEACHER=‘LIU’(C))
(2)检索年龄大于23岁的男学生的学号和姓名;
πS#,SNAME(σAGE>23∧SEX=‘男’(S))
(3)检索学号为S3学生所学课程的课程名与任课教师名;
πCNAME,TEACHER(σS#=‘S3’(SC⋈C))
(4)检索至少选修LIU老师所授课程中一门课的女学生姓名;
πSNAME(σSEX=’女’∧TEACHER=‘LIU’(S⋈SC⋈C))
(5)检索WANG同学不学的课程的课程号;
πC#(C)-πC#(σSNAME=‘WANG’(S⋈SC))
(6)检索既选修了LIU老师的课程、又选修了LI老师课程的学生学号;
π1(σ1=4∧2≠5(SC×SC))
(7)全部学生都选修的课程的课程号与课程名;
πC#,CNAME(C⋈(πS#,C#(SC)÷πS#(S)))
(8)检索选修课程包含LIU老师所授全部课程的学生学号。
πS#,C#(SC)÷πC#(σTEACHER=‘LIU’(C))