数据库原理与应用:第9章 嵌套查询.ppt

数据库原理与应用:第9章 嵌套查询.ppt

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

三、带有ANY或ALL谓词的子查询ANY:任意一个ALL:所有带有ANY或ALL谓词的子查询(续)需要配合使用比较运算符ANY 大于子查询结果中的某个值ALL 大于子查询结果中的所有值ANY 小于子查询结果中的某个值ALL 小于子查询结果中的所有值=ANY 大于等于子查询结果中的某个值=ALL 大于等于子查询结果中的所有值=ANY 小于等于子查询结果中的某个值=ALL 小于等于子查询结果中的所有值=ANY 等于子查询结果中的某个值=ALL 等于子查询结果中的所有值(没有实际意义)!=(或)ANY不等于子查询结果中的某个值(没有实际意义)!=(或)ALL不等于子查询结果中的任何一个值带有ANY或ALL谓词的子查询(续)[例39]查询其他班中比95031任意一个(其中某一个)学生后出生的学生姓名和出生日期SELECTsname,sbirthdayFROMstudentWHEREsbirthdayANY(SELECTsbirthdayFROMstudentWHEREclass=95031)ANDclass95031/*注意这是父查询块中的条件*/带有ANY或ALL谓词的子查询(续)结果执行过程1.DBMS执行此查询时,首先处理子查询,找出‘95031’班中所有学生的出生日期,构成一个集合(‘74-6-3’,‘75-10-2’,‘75-2-10’)。2.处理父查询,找所有不是’95031’且出生日期大于(‘74-6-3’,‘75-10-2’,‘75-2-10’)集合中任意一个(实际上只要大于‘74-6-3’)的学生。带有ANY或ALL谓词的子查询(续)ANY和ALL谓词有时可以用集函数实现ANY与ALL与集函数的对应关系?=或!===ANYIN--MAX=MAXMIN=MINALL--NOTINMIN=MINMAX=MAX带有ANY或ALL谓词的子查询(续)用集函数实现子查询通常比直接用ANY或ALL查询效率要高,因为前者通常能够减少比较次数带有ANY或ALL谓词的子查询(续)[例39]:用集函数实现[例39]SELECTsname,sbirthdayFROMstudentWHEREsbirthday(SELECTMIN(sbirthday)FROMstudentWHEREclass=95031)ANDclass95031带有ANY或ALL谓词的子查询(续)[例40]查询其他系中比95031班所有学生都后出生的学生姓名及出生日期。方法一:用ALL谓词SELECTsname,sbirthdayFROMstudentWHEREsbirthdayALL(SELECTsbirthdayFROMstudentWHEREclass=95031)ANDclass95031带有ANY或ALL谓词的子查询(续)方法二:用集函数SELECTsname,sbirthdayFROMstudentWHEREsbirthday(SELECTMAX(sbirthday)FROMstudentWHEREclass=95031)ANDclass95031四、带有EXISTS谓词的子查询1.EXISTS谓词2.NOTEXISTS谓词3.不同形式的查询间的替换4.用EXISTS/NOTEXISTS实现全称量词5.用EXISTS/NOT

文档评论(0)

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

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

1亿VIP精品文档

相关文档