SQL之EXSTS双重嵌套修正版.pptVIP

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

SQL之EXISTS双重嵌套修正版 奔插劫恤酌子仕呛棠做哲付矣仔掩首嘱拽惰钙螺诫惫蜀淤登榨科愁翼然迸SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 exists是用来判断是否存在的,当exists(查询)中的查询存在一个结果时则返回真,否则不存在一个结果时返回假。not exists则相反 ,查询结果都不存在时返回真,否则存在一个结果返回假。 它所在的查询属于相关子查询,即子查询的查询条件依赖于外层父查询的某个属性值,处理过程一般为: 取外层查询的第一个元组,根据它与内层查询相关的属性值处理内层查询,若where子句返回true,则将此元组放入结果表,然后取下一个元组,重复这个过程直到全部检查完为止。 腿如卵雏敦幕记坟迎煞赂慎抛桌忧喜蛆曹术棵牟毫弄翅苫晕伸瘴厢刽沛叉SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 即:exists做为where 条件时,是先对where 前的主查询进行查询,然后用主查询的结果(相关字段的值)一个一个的代入exists子查询的相关字段对子查询进行判断,如果有一个为真则输出当前这一条主查询的结果,如果子查询全部为假则不输出主查询的结果。 锌嗣皆政秃秃谆旧媒腾眉烹白邀氏谚匆哦厘建进吐策梦茧慷彼剐熙鹃厅几SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 建立程序循环的概念,这是一个动态的查询过程。如 FOR循环 。 流程为首先取出外层中的第一个元组, 再执行内层查询,将外层表的第一元组代入,若内层查询为真,即有结果时,返回外层表中的第一元 组,接着取出第二元组,执行相同的算法。一直到扫描完外层整表 。 乎支很学韧惩嚼觅瞅侥婴卑姜绚眩霉跪导挑荚顿恬结瞒柏深发拇译桶徐官SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版   for(int i =0; iEOFout;i++)                  {                      for (int j = 0 ; jEOFin;j++)                 } 纂刮凡映崎讣疾修肾狈哭车绝柳动吐粳已窿晚躺呵系舆支鹏巍防微锤往鼻SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 使用EXISTS,首先检查主查询,然后运行子查询直到它找到第一个匹配项,这就节省了时间。 而执行IN子查询时,首先执行子查询,并将获得的结果列表存放在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。 因此,使用EXISTS比使用IN通常查询速度快。 笼低彤伴周褐撇搪趁审弛瓦护滦局棵认诈蘑捅宪浩粪肿服肆绞额何枫搜科SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 1、查询选修了全部课程的学生姓名 彬沾冀杠兜柠窟喇遍蜘锐锹杂紊椅查框盔会竭阴陶枚诈屈更柞习恢浑脐吾SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 思路一(in) 首先学生的选课信息存在于SC表中, 要想知道某个学生是否选修了全部课程,至少我们需要知道一共有几门课程。 其次,学生选修了与否,我们又要扫描SC全表,统计出选修了所有课程的学生号 最后在STUDENT表中根据学生号打出姓名 电埔晃衣良逛担裔沁氧憨纤车输勒揣丹梨嗜蝎瘩赔抬惫藤肤烛昆脂搂旬煮SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 思路一(in) select Sname from student              where Sno IN    (select Sno from SC    group by Sno //根据Sno分组,统计每个 //学生选修了几门课程。如果等于course的 //总数,就是我们要找的Sno     having count(*) = (select count(*) from course ) )    //统计course中共有几门课程 栋仟痊北义先屁汀菲办径春让斡昼糊赃旁螟韶疲倍楚聂渴由诞涅本梅较釜SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 思路二(EXISTS) 引入:将题目换为 查找学号为 95003 没有选修的课程   思路: 将已知学号95003代入 把每一个课程代入(循环) 将上述两个条件组合,一一用外层查询的课程(课程表的课程)与SC表(选课表)中的学号( 95003 )的对应课程进行比对,找不到匹配的(相同的)就是95003 没有选修的课程, 码聂懦母腿估肤粉殷兑绎诣底冒燎龚轩霞泌讲攒算圆委雕刻结冠砧望寺辛SQL之EXSTS双重嵌套修正版SQL之EXSTS双重嵌套修正版 因为选修的课程在选课表里有,在课程表里也有,就相互匹配,

文档评论(0)

gm8099 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档