设教学数据库Education有三个关系:学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)查询问题:(1)检索计算机系的全体学生的学号,姓名和性别;(2)检索学习课程号为C2的学生学号与姓名;(3)检索选修课程名为“DS”的学生学号与姓名;(4)检索选修课程号为C2或C4的学生学号;(5)检索至少选修课程号为C2和C4的学生学号;(6)检索不学C2课的学生姓名和年龄;(7)检索学习全部课程的学生姓名;(8)查询所学课程包含学生S3所学课程的学生学号
(1)检索计算机系的全体学生的学号,姓名和性别;SELECTSno,Sname,SexFROMSWHERESdept=’CS';(2)检索学习课程号为C2的学生学号与姓名;(3)检索选修课程名为“DS"的学生学号与姓名本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系
C→SC→S基本思路:(1)首先在C表中找出“DS”课程的课程号Cno;(2)然后在SC表中找出Cno等于第一步给出的Cno集合中的某个元素Cno;(3)最后在S关系中选出Sno等于第二步中Sno集合中某个元素的元组,取出Sno和Sname送入结果表列
SELECTSno,SnameFROMSWHERESnoIN(SELECTSnoFROMSCWHERECnoIN(SELECTCnoFROMCWHERECname=‘DS’));(4)检索选修课程号为C2或C4的学生学号;SELECTSnoFROMSCWHERECno=‘C2'ORCno=‘C4’;(5)检索至少选修课程号为C2和C4的学生学号;SELECTSnoFROMSCX,SCYWHEREX