数据库第三章习题参考答案_第1页
数据库第三章习题参考答案_第2页
数据库第三章习题参考答案_第3页
数据库第三章习题参考答案_第4页
数据库第三章习题参考答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

.3-2 对于教务管理数据库的三个基本表 S(SNO,SNAME, SEX, AGE,SDEPT) SC(SNO,CNO,GRADE) C(CNO,CNAME,CDEPT,TNAME) 试用SQL的查询语句表达下列查询: 检索LIU老师所授课程的课程号和课程名。 检索年龄大于23岁的男学生的学号和姓名。 检索学号为200915146的学生所学课程的课程名和任课教师名。 检索至少选修LIU老师所授课程中一门课程的女学生姓名。 检索WANG同学不学的课程的课程号。 检索至少选修两门课程的学生学号。 检索全部学生都选修的课程的课程号与课程名。 检索选修课程包含LIU老师所授课程的学生学号。 解: SELECT C#,CNAME FROM C WHERE TEACHER=LIU; SELECT S#,SNAME FROM S WHERE AGE23 AND SEX=M; SELECT CNAME,TEACHER FROM SC,C WHERE SC.C#=C.C# AND S#=200915146 SELECT SNAME (连接查询方式) FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=F AND TEACHER=LIU; 或: SELECT SNAME (嵌套查询方式) FROM S WHERE SEX=FAND S# IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER=LIU) 或: SELECT SNAME (存在量词方式) FROM S WHERE SEX=F AND EXISTS(SELECT* FROM SC WHERE SC.S#=S.S# AND EXISTS(SELECT * FROM C WHERE C.C#=SC.C# AND TEACHER=LIU) SELECT C# FROM C WHERE NOT EXISTS (SELECT * FROM S,SC WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=WANG); SELECT DISTINCT X.S# FROM SC AS X,SC AS Y WHERE X.S#=Y.S# AND X.C#!=Y.C#; SELECT C#.CNAME FROM C WHERE NOT EXISTS (SELECT * FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE S#=S.S# AND C#=C.C#); SELECT DISTINCT S# FROM SC AS X WHERE NOT EXISTIS (SELECT * FROM C WHERE TEACHER=LIU AND NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.S#=X.S# AND Y.C#=C.C#); 3-3 试用SQL查询语句表达下列对3.2题中教务管理数据库的三个基本表S、SC、C查询: 统计有学生选修的课程门数。 求选修4号课程的学生的平均年龄。 求LIU老师所授课程的每门课程的学生平均成绩。 统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 检索学号比WANG同学大,而年龄比他小的学生姓名。 检索姓名以WANG打头的所有学生的姓名和年龄。 在SC中检索成绩为空值的学生学号和课程号。 求年龄大于女同学平均年龄的男学生姓名和年龄。 求年龄大于所有女同学年龄的男学生姓名和年龄。 解: SELECT COUNT(DISTINCT C#) FROM SC; SELECT AVG(AGE) FROM S,SC WHERE S.S#=SC.S# AND C#=4AND SEX=F; SELECT C.C#,AVG(GRADE) FROM SC,C WHERE SC.C#=C.C# AND TEACHER=LIU; SELECT C#,COUNT(S#) FROM SC GROUP BY C# HAVING COUNT(*)10 ORDER BY 2 DESC,1; SELECT SNAME FROM S WHERE S#ALL(SELECT S# FROM S WHERE SNAME=WANG AND AGE(SELECT AVG(AGE) FROM S WHERE SEX=F); SELECT SNAME,AGE FROM S WHERE SEX=MAND AGEALL(SELECT AGE FROM S WHERE SEX=F); 3-4 试用SQL更新语句表达对3.2给出的教务管理数据库中三个基本表S、SC、C进行如下更新操作: 往基本表S中插入一个学生元组(200912143,张晶,21)。 在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(SNO,SNAME,SEX)。 在基本表SC中删除尚无成绩的选课元组。 把张成民同学在SC中的选课记录全部删去。 把选修高等数学课程中不及格的成绩全部改为空值。 把低于总平均成绩的女同学成绩提高5%。 在基本表SC中修改4号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。 解: INSERT INTO S(S#,SNAME,AGE) VALUES(200912143,张晶,21); INSERT INTO STUDENT (SNO,SNAME,SEX) SELECT S#,SNAME,SEX FROM S WHERE S# IN (SELECT S# FROM SC WHERE 80=ALL(SELECT GRADE FROM SC GROUP BY S#); DELETE FROM SCWHERE GRADE IS NULL; DELETE FROM SC WHERE S# IN(SELECT S# FROM S WHERE SNAME=张成民) UPDATE SC SET GRADE=NULL WHERE GRADE60 AND C# IN(SELECT C# FROM C WHERE CNAME=高等数学); UPDATE SC SET GRADE=GRADE*

温馨提示

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

评论

0/150

提交评论