肇查询问题:设教学数据库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,Sex蕿FROMS芇WHERESdept=’CS’;膃(2)检索学****课程号为C2的学生学号与姓名;,Sname羇FROMS,==‘C2’;,Sname螈FROMS羂WHERESnoIN莀(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,Sname螅FROMS羂WHERESnoIN罿(oIN羃(ame=‘DS’));膅检索选修课程号为C2或C4的学生学号;o=‘C2’o=‘C4’;羆检索至少选修课程号为C2和C4的学生学号;袂SELECTSno螃FROMSCX,==‘C2’o=‘C4’;蚆检索不学C2课的学生姓名和年龄;(SELECT*==‘C2’);(o=‘C2’);虿检索学****全部课程的学生姓名;蚈在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。袅SELECTSname袂FROMS肈WHERENOTEXISTS蒈(SELECT*蚂FROMC羁WHERENOTEXISTS薇(SELECT*==o));聿查询所学课程包含学生S3所学课程的学生学号。膅分析:不存在这样的课程Y,学生S3选了Y,而其他学生没有选。袃SELECTDISTINCTSno羃FROMSCASX虿WHERENOTEXISTS袈(SELECT*=‘S3’ANDNOTEXISTS螈(SELECT*==o));袂设教学数据库Education有三个关系:膀学生关系S(SNO,SNAME,AGE,SEX,SDEPT);蚇学****关系SC(O,GRADE);AME,CDEPT,TNAME)袃查询问题:芈1:查所有年龄在20岁以下的学生姓名及年龄。膆2:查考试成绩有不及格的
数据库中SQL查询语句习题含的答案 来自淘豆网www.taodocs.com转载请标明出处.