文档详情

《数据库》第4章习题答案.pdf

发布:2020-06-04约8.99千字共8页下载文档
文本预览下载声明
4 .2 对于教学数据库的三个基本表 S (SNO,SNAME,AGE,SEX,SDEPT) SC (SNO,CNO,GRADE) C (CNO,CNAME, CDEPT,TNAME) 试用 SQL的查询语句表达下列查询: ①检索 LIU 老师所授课程的课程号和课程名。 ②检索年龄大于 23 岁的男学生的学号和姓名。 ③检索至少选修 LIU 老师所授课程中一门课程的女学生姓名。 ④检索 WANG 同学不学的课程的课程号。 ⑤检索至少选修两门课程的学生学号。 ⑥检索全部学生都选修的课程的课程号与课程名。 ⑦检索选修课程包含 LIU 老师所授 (全部 )课程的学生学号。 参考答案: SELECT CNO,CNAME FROM C WHERE TNAME=‘ LIU’; SELECT SNO,SNAME FROM S WHERE AGE>23 AND SEX=‘ M ’; SELECT SNAME (联接查询方式) FROM S,SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND SEX=’ F’ AND TNAME=’ LIU ’; 或: SELECT SNAME (嵌套查询方式 ) FROM S WHERE SEX=‘ F’ AND SNO IN(SELECT SNO FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE TNAME=’ LIU ’ )); 或: SELECT SNAME (存在量词方式 ) FROM S WHERE SEX=‘ F’ AND EXISTS(SELECT * FROM SC WHERE SC.SNO=S.SNO AND EXISTS(SELECT * FROM C WHERE C.CNO=SC.CNO AND TNAME=’ LIU ’ )); SELECT CNO FROM C WHERE NOT EXISTS (SELECT * FROM S,SC WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND SNAME=’WANG’ ); 或: SELECT CNO FROM C WHERE CNO NOT IN (SELECT SC.CNO FROM S,SC WHERE S.SNO=SC.SNOAND SNAME=’WANG’ ); 或: SELECT CNO FROM C WHERE CNO NOT IN (SELECT CNO FROM SC WHERE SNO IN (SELECT SNO FROM S WHERE SNAME=’WANG’ )); SELECT DISTINCT X..SNO FROM SC AS X,SC AS Y WHERE X.SNO=Y.SNO AND X.CNOY.CNO; 或: SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(
显示全部
相似文档