- 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章 关系数据库语言SQL
第3章 关系数据库语言SQL
教材中习题3的解答
3.2 解:① SELECT S#, SNAME
FROM S
WHERE AGE17 AND SEX=’F’;
②SELECT C.C#, CNAME(联接查询方式)
FROM S,SC,C
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=’M’;
或:SELECT C#, CNAME(嵌套查询方式)
FROM C
WHERE C# IN (SELECT C#
FROM SC
WHERE S# IN (SELECT S#
FROM S
WHERE SEX=’M’));
或:SELECT C#, CNAME(存在量词方式)
FROM C
WHERE EXISTS (SELECT *
FROM SC
WHERE C.C#=SC.C#
AND EXISTS (SELECT *
FROM S
WHERE SC.S#=S.S#
AND SEX=’M’));
EXISTS 表示存在量词, EXISTS操作符后子查询的结果集中如果不为空,则产生逻辑真值“true”,否则产生假值“false”
这类查询和不相关子查询有一个明显区别,即子查询的查询条件依赖于外层父查询的某个属性值,内层查询由于与外层查询有关,因此必须反复求值
一般处理过程为:首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询,若WHERE子句返回值为真,则取此元组放入结果表,然后再取外层表的下一个元组,重复这一过程,直到外层表全部查完为止。
③ SELECT T.T#,TNAME
FROM T,SC, C,S
WHERE T.T#=C.C# AND SC.C#=C.C# AND SC. S#= S.S# AND SEX=’M’;
④ SELECT DISTINCT X..S#
FROM SC AS X, SC AS Y
WHERE X.S#=Y.S# AND X.C#!=Y.C#;
SELECT C#
FROM SC AS X, SC AS Y
WHERE X.C#=Y.C# AND X.S#=’S2’ AND Y.S#=’S4’;
⑥ 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 C#, CNAME
FROM C
WHERE NOT EXISTS
(SELECT *
FROM S
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE S#=S.S# AND C#=C.C#));
外层循环依次扫描C关系中的每个元组,中层循环依次扫描S关系中的每个元组,内层循环依次扫描SC关系中的每个元组,对于C关系中的每个元组,若有一个学生没有选修,则最内层查询为空,得出中层选择条件为真,进而得出中层查询不为空,从而外层的选择条件为假,该课程不会选出来放到结果集中。所以,只有某个课程被学生中的所有学生选修,最内层查询每次都不为空,中层选择条件每次都为假,得出中层查询结果为空,进而得出外层选择条件为真,该课程元组被选择出来放到结果集中。
⑧ SELECT DISTINCT S#
FROM SC AS X
WHERE NOT EXISTS
(SELECT *
FROM C, T
WHERE C.T#=T.T# AND TNAME=’LIU’
AND NOT EXISTS
(SELECT *
FROM SC AS Y
WHERE Y.S#=X.S# AND Y.C#=C.C#));
或者SELECT DISTINCT S#
FROM SC AS X
WHERE NOT EXIS
您可能关注的文档
- 《机械设计基础》215年秋学期在线作业-答案.doc
- 《机械运动》全章复与巩固(基础).doc
- 《材料成形技术基础实验指导书.doc
- 《核心期刊目录》.doc
- 《桃花源记》复习课学设计.doc
- 《某知名电影院线股有限公司影城绩效考核手册》(49页).doc
- 《概率与数理统计》题与参考答案.doc
- 《概率论与数理统计(复旦大学出版社)第三章习题答案.doc
- 《概率论与数理统计习题及答案 第一章.doc
- 《概率论与数理统计期末复习材料2015.doc
- 【文本】普通话朗读习作品60篇.doc
- 【教学设计】-第四动物的行为-生物-初中-单桂芹-A3707850122.doc
- 【摄影技巧交流】手曝光模式的使用技巧.doc
- 【时政热点】低碳减 绿色生活.doc
- 【无限互联】学员作:牛股王.doc
- 【昆明】《融创逆市客营销策略解析及房地产移动互联网O2O营销模式实操应用》(3月28-29日).doc
- 【杭州】《养老地产发定位、开发运营模式解析及养老地产实地考察》(8月30-31日).doc
- 【期末复习参考 人】2015-2015学年八年级物理上册:第一章 机械运动 检测题(含详解).doc
- 【步步高】2015高三数学大一轮复习 8.8立体几何中的向量方法(Ⅱ)求空间角、距离教案 理 新人教A版.doc
- 【步步高】2015高考政治一轮总复习 第38课 唯物辩证法的发展观 新人教版.doc
文档评论(0)