查询问题:设教学数据库Education有三个关系:学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学****关系SC(O,GRADE);AME,CDEPT,TNAME)检索计算机系的全体学生的学号,姓名和性别;检索学****课程号为C2的学生学号与姓名;检索选修课程名为“DS”的学生学号与姓名;(4)检索选修课程号为C2或C4的学生学号;(5)检索至少选修课程号为C2和C4的学生学号;(6)检索不学C2课的学生姓名和年龄;(7)检索学****全部课程的学生姓名;(8)查询所学课程包含学生S3所学课程的学生学号。(1)检索计算机系的全体学生的学号,姓名和性别;SELECTSno,Sname,SexFROMSWHERESdept=’CS’;(2)检索学****课程号为C2的学生学号与姓名;,SnameFROMS,==‘C2’;,SnameFROMSWHERESnoIN(o=‘C2’)(3)检索选修课程名为“DS”的学生学号与姓名本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。C→SC→S基本思路:(1)首先在C表中找出“DS”o;(2)o;(3)最后在S关系中选出Sno等于第二步中Sno集合中某个元素的元组,取出Sno和Sname送入结果表列。SELECTSno,SnameFROMSWHERESnoIN(oIN(ame=‘DS’));检索选修课程号为C2或C4的学生学号;o=‘C2’o=‘C4’;检索至少选修课程号为C2和C4的学生学号;SELECTSnoFROMSCX,==‘C2’o=‘C4’;检索不学C2课的学生姓名和年龄;(SELECT*==‘C2’);(o=‘C2’);检索学****全部课程的学生姓名;在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。SELECTSnameFROMSWHERENOTEXISTS(SELECT*FROMCWHERENOTEXISTS(SELECT*==o));查询所学课程包含学生S3所学课程的学生学号。分析:不存在这样的课程Y,学生S3选了Y,而其他学生没有选。SELECTDISTINCTSnoFROMSCASXWHERENOTEXISTS(SELECT*=‘S3’ANDNOTEXISTS(SELECT*==o));设教学数据库Education有三个关系:学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学****关系SC(O,GRADE);AME,CDEPT,TNAME)查询问题:1:查所有年龄在20岁以下的学生姓名及年龄。2:查考试成绩有不及格的学生的学号3:查所年龄在20至23岁之间的学生姓名、系别及年龄。4:查计算机系、数学系、信息系的学生姓名、性别。5:查既不是计算机系、数学系、又不是信息系的学
数据库中SQL查询语句习题含的答案 来自淘豆网www.taodocs.com转载请标明出处.