- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库第三章习题参考答案.
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=’F’AND 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#=’4’AND 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
FRO
文档评论(0)