网站大量收购独家精品文档,联系QQ:2885784924

第三篇 章 关系数据库标准语言SQL (续1) 数据库原理及应用授课课件.ppt

第三篇 章 关系数据库标准语言SQL (续1) 数据库原理及应用授课课件.ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三篇 章 关系数据库标准语言SQL (续1) 数据库原理及应用授课课件.ppt

An Introduction to Database System 带有EXISTS谓词的子查询(续) 思路分析: 本查询涉及Student和SC关系。 在Student中依次取每个元组的Sno值,用此值去检查SC关系。 若SC中存在这样的元组,其Sno值等于此Student.Sno值,并且其Cno= 1,则取此Student.Sname送入结果关系。 An Introduction to Database System 带有EXISTS谓词的子查询(续) [例41] 查询所有选修了1号课程的学生姓名。 用嵌套查询 SELECT Sname FROM Student WHERE EXISTS (SELECT * FROM SC /*相关子查询*/ WHERE Sno=Student.Sno AND Cno= 1 ); 求解过程 An Introduction to Database System 带有EXISTS谓词的子查询(续) 用连接运算 SELECT Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno= 1; An Introduction to Database System 带有EXISTS谓词的子查询(续) [例42] 查询没有选修1号课程的学生姓名。 SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno=1); 此例用连接运算难于实现 An Introduction to Database System 带有EXISTS谓词的子查询(续) 3. 不同形式的查询间的替换 一些带EXISTS或NOT EXISTS谓词的子查询不能被其他形式的子查询等价替换 所有带IN谓词、比较运算符、ANY和ALL谓词的子查询都能用带EXISTS谓词的子查询等价替换。 An Introduction to Database System 带有EXISTS谓词的子查询(续) 例:[例37]查询与“刘晨”在同一个系学习的学生。可以用带EXISTS谓词的子查询替换: SELECT Sno,Sname,Sdept FROM Student S1 WHERE EXISTS   SELECT * FROM Student S2 WHERE S2.Sdept = S1.Sdept AND S2.Sname = 刘晨 ; An Introduction to Database System 带有EXISTS谓词的子查询(续) 5.用EXISTS/NOT EXISTS实现全称量词(难点) SQL语言中没有全称量词? (For all) 可以把带有全称量词的谓词转换为等价的带有存在量词的谓词: (?x)P ≡ ? (? x(? P)) An Introduction to Database System 带有EXISTS谓词的子查询(续) [例43] 查询选修了全部课程的学生姓名。 SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno= Student.Sno AND Cno= Course.Cno); An Introduction to Database System 带有EXISTS谓词的子查询(续) 6. 用EXISTS/NOT EXISTS实现逻辑蕴函(难点) SQL语言中没有蕴函(Implication)逻辑运算 可以利用谓词演算将逻辑蕴函谓词等价转换为: p ? q ≡ ? p∨q An Introduction to Data

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档