数据库-第四章习题参考解答.doc

上传人:hw****26 文档编号:2249129 上传时间:2019-05-03 格式:DOC 页数:5 大小:44KB
下载 相关 举报
数据库-第四章习题参考解答.doc_第1页
第1页 / 共5页
数据库-第四章习题参考解答.doc_第2页
第2页 / 共5页
数据库-第四章习题参考解答.doc_第3页
第3页 / 共5页
数据库-第四章习题参考解答.doc_第4页
第4页 / 共5页
数据库-第四章习题参考解答.doc_第5页
第5页 / 共5页
亲,该文档总共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) 检索全部学生都选修的课程的课

2、程号与课程名。(8) 检索选修课程包含 LIU 老师所授课程的学生学号。解:(1)SELECT CNO,CNAMEFROM CWHERE TNAME=LIU;(2)SELECT SNO,SNAMEFROM SWHERE AGE23 AND SEX=M;(3)SELECT CNAME, TNAMEFROM C WHERE CNO IN (SELECE CNOFROM SCWHERE SNO=S3) ) ;(4)联接查询方式SELECT SNAMEFROM S,SC,CWHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND SEX=F AND TNAME=LIU;嵌套查询方

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

4、WHERE SNO IN(SELECT SNOFROM SWHERE SNAME=WANG) ) ;(6)方法(一):SELECT DISTINCT X.SNOFROM SC XWHERE SNO IN(SELECT SNOFROM SC YWHERE X.SNO=Y.SNO AND X.CNO=Y.CNO) ;方法(二):SELECT SNOFROM SCGROUP BY SNOHAVING COUNT(*)=2 ;(7)SELECT CNO,CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCW

5、HERE SC.SNO=S.SNO AND SC.CNO=C.CNO) ) ;(8)SELECT DISTINCT SNOFROM SC XWHERE NOT EXISTS(SELECT *FROM CWHERE 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 SNOFR

7、OM SCWHERE CNO=C4) ;(3)SELECT CNO,AVG( GRADE)FROM SCWHERE CNO IN(SELECT CNOFROM CWHERE TNAME=LIU)GROUP BY CNO(4)SELECT CNO,COUNT (SNO)FROM SCGROUP BY CNOHAVING COUNT(*)10ORDER BY 2 DESC,CNO;(5)方法(一):SELECT X.SNAMEFROM S X,S YWHERE Y.SNAME=WANG AND X.SNOY.SNO AND X.AGE( SELECT SNOFROM SWHERE SNAME=WA

8、NG)AND AGE( SELECT AVG(AGE)FROM SWHERE SEX=F);(9)SELECT SNAME ,AGEFROM SWHERE SEX=MAND AGEALL(SELECT AGEFROM SWHERE 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 SNOFROM SCWHERE GRADE75;UPDATE SCSET GRADE=GRADE*1.05WHERE CNO=C4 AND GRADE=75;这两个 UPDATE 语句的顺序不能颠倒。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课程笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。