数据库-第四章习题参考解答_第1页
数据库-第四章习题参考解答_第2页
数据库-第四章习题参考解答_第3页
数据库-第四章习题参考解答_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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);(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.04

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论