数据库第四章习题参考解答(供参考).doc

上传人:大张伟 文档编号:6034400 上传时间:2020-08-24 格式:DOC 页数:5 大小:27KB
返回 下载 相关 举报
数据库第四章习题参考解答(供参考).doc_第1页
第1页 / 共5页
数据库第四章习题参考解答(供参考).doc_第2页
第2页 / 共5页
数据库第四章习题参考解答(供参考).doc_第3页
第3页 / 共5页
数据库第四章习题参考解答(供参考).doc_第4页
第4页 / 共5页
数据库第四章习题参考解答(供参考).doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据库第四章习题参考解答(供参考).doc》由会员分享,可在线阅读,更多相关《数据库第四章习题参考解答(供参考).doc(5页珍藏版)》请在三一文库上搜索。

1、第四章 习题参考解答42题 对于教学数据库的3个基本表:S(SNO,SNAME,AGE,SEX,SDEPT)SC(SNO,CNO,GRADE)C(CNO,CNAME,CDEPT,TNAME)试用SQL的查询语句表达下列查询:(1) 检索LIU老师所授课程的课程号和课程名。(2) 检索年龄大于23岁的男同学的学号和姓名。(3) 检索学号为 S3的 学生呢个所学课程的课程名和任课教师名。(4) 检索至少选修LIU老师所授课程中一门课程的女学生姓名。(5) 检索WANG同学不学的课程的课程号。(6) 检索至少选修两门课程的学生学号。(7) 检索全部学生都选修的课程的课程号与课程名。(8) 检索选修课

2、程包含LIU老师所授课程的学生学号。解:(1)SELECT CNO,CNAME FROM C WHERE TNAME=LIU; (2)SELECT SNO,SNAME FROM S WHERE AGE23 AND SEX=M; (3)SELECT CNAME,TNAME FROM C WHERE CNO IN (SELECE CNO FROM SC WHERE SNO=S3);(4)联接查询方式 SELECT SNAME FROM S,SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND SEX=F AND TNAME=LIU; 嵌套查询方式: SELECT

3、 SANME FROM S WHERE SEX=F AND SNO IN(SELECT SNOFROM SCWHERE CNO IN (SELECT CNO FROM C WHERE TNAME=LIU);存在量词方式:SELECT SNAMEFROM SWHERE SEX=F AND EXISTS (SELECT * FROM SC WHERE SNO=S.SNO AND EXISTS (SELECT * FROM C WHERE CNO=SC.CNO AND TNAME=LIU);(5)SELECT CNO FROM C WHERE CNO NOT IN (SELECT CNO FROM

4、SC WHERE SNO IN (SELECT SNO FROM S WHERE SNAME=WANG);(6)方法(一): SELECT DISTINCT X.SNO FROM SC X WHERE SNO IN (SELECT SNO FROM SC YWHERE X.SNO=Y.SNO AND X.CNO=Y.CNO); 方法(二): SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(*)=2;(7)SELECT CNO,CNAME FROM C WHERE NOT EXISTS (SELECT * FROM S WHERE NOT EXISTS

5、(SELECT * FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO);(8)SELECT DISTINCT SNOFROM SC XWHERE NOT EXISTS (SELECT * FROM C WHERE TNAME=LIU AND NOT EXISTS (SELECT *FROM SC YWHERE X.SNO=Y.SNO AND C.CNO=Y.CNO);46题 试用SQL查询语句表达下列对数据库中3个基本表S、SC、C的查询。(1) 统计有学生选修的课程门数。(2) 求选修C4课程的学生的平均年龄。(3) 求LIU老师所授课程的每门课程的学生

6、平均成绩。(4) 统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。(5) 检索学号比WANG同学大,而年龄比他小的学生姓名。(6) 检索姓名以WANG打头的所有学生的姓名和年龄。(7) 在SC中检索成绩为空值的学生学号和课程名。(8) 求年龄大于女同学平均年龄的男同学姓名和年龄。(9) 求年龄大于所有女同学年龄的男同学姓名和年龄。解:(1)SELECT COUNT(DISTINCT CNO) FROM SC;(2)SELECT AVG(AGE)FROM SWHERE SNO IN (SELECT SNO FR

7、OM SC WHERE CNO=C4);(3)SELECT CNO,AVG(GRADE) FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE TNAME=LIU) GROUP BY CNO(4)SELECT CNO,COUNT(SNO) FROM SC GROUP BY CNO HAVING COUNT(*)10 ORDER BY 2 DESC,CNO;(5)方法(一): SELECT X.SNAME FROM S X,S Y WHERE Y.SNAME=WANG AND X.SNOY.SNO AND X.AGE( SELECT SNO FROM S W

8、HERE SNAME=WANG) AND AGE( SELECT AVG(AGE) FROM S WHERE SEX=F);(9)SELECT SNAME,AGE FROM S WHERE SEX=M AND AGEALL(SELECT AGE FROM S WHERE SEX=F);4.7题 试用SQL更新语句表达对教学数据库中基本表S、SC、C的各个更新操作。(1) 往基本表S中插入一个学生元组(S9,WU,18)。(2) 在基本表S中检索每一个成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SNAME,SEX)。(3) 在基本表SC

9、中删除尚无成绩的选课元组。(4) 把WANG同学的学习选课和成绩全部删去。(5) 把选修MATHS课不及格的成绩全改为空值。(6) 把低于总平均成绩的女同学成绩提高5%。(7) 在基本表SC中修改C4课程的成绩,若成绩小于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。解:(1)INSERT INTO S(SNO,SNAME,AGE) VALUES(S9,WU,18);(2)INSERT INTO STUDENTSELECT SNO,SNAME,SEXFROM SWHERE SNO NOT IN (SELECT SNO FROM SC WHERE GRADE80);

10、(3)DELETE FROM SC WHERE GRADE IS NULL;(4)DELETE FROM SCWHERE SNO IN(SELECT SNOFROM SWHERE SNAME=WANG);(5)UPDATE SCSET GRADE=NULLWHERE GRADE60 AND CNO IN(SELECT CNOFROM CWHERE CNAME=MATHS);(6)UPDATE SCSET GRADE=GRADE*1.04WHERE SNO IN (SELECT SNO FROM S WHERE SEX=F)AND GRADE75;UPDATE SCSET GRADE=GRADE*1.05WHERE CNO=C4 AND GRADE=75;这两个UPDATE语句的顺序不能颠倒。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1