SQL--代数查询语言实例

 注意:为连接符号;

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))

猜你喜欢

转载自blog.csdn.net/queque_heiya/article/details/106199612