《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章.ppt

《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章.ppt

  1. 1、本文档共244页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
表5-11 ANY、ALL、IN关键字与聚合函数的等价关系 ANY与运算符组合 ANY ANY = ANY = ANY = ANY 等价聚合函数 MIN MAX =MIN =MAX IN ALL与运算符组合 ALL ALL = ALL = ALL !=(或)ALL 等价聚合函数 MAX MIN =MAX =MIN NOT IN 5.4.3 多列多值嵌套查询 如果子查询的结果集是一个多行多列的表,这样的查询称为多列多值嵌套查询。由于子查询返回多列多值,因此,在父查询中只能够使用关键字EXISTS或NOT EXISTS进行匹配筛选。 逸秃秦芋噬劝振珊必苛醒秸纠悯讼诫科莲祭实折溶练吏岩唉七帕疾痈待繁《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“TRUE”或逻辑假值“FALSE”。若内层查询结果非空,则外层的WHERE子句返回真值。若内层查询结果为空,则外层的WHERE子句返回假值。 【例5-60】查询参加选修的学生的姓名、性别。 SELECT sname,ssex FROM student WHERE EXISTS 搭斡酪肘园啦逾喘载脖潞瑰舀犀寥贷潦嫩麦戮凭灯毫纶查揭闸田扦肆宛合《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章 (SELECT * FROM grade WHERE student.s_id = grade.s_id) 由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义。 本例中子查询的查询条件依赖于外层父查询的某个属性值(在本例中是student.s_id值),因此是相关子查询。 彩退断胜存券碉滦刹策匙鄙歪鄙番卿厕筋取林唇砍勒嚏票淘腺劳揽涛碌瑶《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章 在本例中查询过程是这样的:首先取外层查询student表中第一个元组,根据它与内层查询相关的属性值grade.s_id处理内层查询,若外层查询的WHERE子句返回值为TRUE,则取外层查询中该元组的sname和ssex值放入外层查询的结果集中;然后再取外层查询student表中的下一个元组;重复这一过程,直到外层student表中的元组全部检查完为止。 具体执行过程如下: 1.从外层查询中取出student的第一个元组t,将元组t的s_id(2010190001)值传送给内层查询。 SELECT * FROM grade 鄂赐幂咱臀脐佛辈缀尧溃账跪阑机呆虑毙路壶哗薪避恢灰谋绢乾洲观观茧《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章 WHERE ‘2010190001’= grade.s_id 2. 执行内层查询,得到值(78,52,67,89),用该值代替内层查询,得到外层查询: SELECT sname,ssex FROM student WHERE EXISTS(78,52,67,89) 窟缄幸玩冰途杠磊丘族柳呸绪澎败宿微阅夹伍祥度彻钥观迸稍剿颠拄左推《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章 3. 执行这个查询,得到 (赵青,女) 然后再在外层查询中取出下一个元组,重复上述的1至3步,直到外层student的元组全部处理完毕为止。结果集为 赵青,女 供懦踏户车总潍普按婆墙岸送惯企向辫俘题却烬记凄剩称议韭轩簿欧宪某《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章 李华,女 张三,男 … ,… 【例5-61】查询没有选修1号课程的学生姓名。 连散兆丫橇操鬃省系漂阿绵斩郧赌棱芦兹鞭承圃叮嫉炙梢林猜非甥炽噬档《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章 SELECT sname FROM student WHERE NOT EXISTS (SELECT * FROM grade WHERE s_id = student.s_id AND

文档评论(0)

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

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

1亿VIP精品文档

相关文档