exists用法详解(SQL关于IN和EXISTS的用法和区别)

更新时间:2024-09-08 09:32:18

1.exist,not exist一般都是与子查询一起使用. In可以与子查询一起使用,也可以直接in (a,b.....)。
2.exist会针对子查询的表使用索引. not exist会对主子查询都会使用索引. in与子查询一起使用的时候,只能针对主查询使用索引. not in则不会使用任何索引. 注意,一直以来认为exists比in效率高的说法是不准确的。
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
IN 其实与等于相似,比如in(1,2) 就是 = 1 or = 2的一种简单写法,所以一般在元素少的时候使用IN,如果多的话就用exists
exists的用法跟in不一样,一般都需要和子表进行关联,而且关联时,需要用索引,这样就可以加快速度。

IN
确定给定的值是否与子查询或列表中的值相匹配。
EXISTS
指定一个子查询,检测行的存在。
比较使用 EXISTS 和 IN 的查询
exists()后面的子查询被称做相关子查询 他是不返回列表的值的.只是返回一个ture或false的结果,其运行方式是先运行主查询一次 再去子查询里查询与其对应的结果 如果是ture则输出,反之则不输出.再根据主查询中的每一行去子查询里去查询.
in()后面的子查询 是返回结果集的,换句话说执行次序和exists()不一样.子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去.符合要求的输出,反之则不输出.


相关推荐

海南省面积多大(海南在中国的具体地理位置是哪里?)

说起海南,那可是咱们中国的一个大宝库,一个热带的天堂!海南到底在中国的哪个位置呢?它就在咱们国家的最南端,本身就是一个省份,同时也是一个岛屿,真的是四面环海,美得不得了!你想象一下,北边是琼州海峡,跟广东省就隔了那么一小片海,就像是邻居一样。西边,是北部湾,跟广西壮族自治区和越南也是隔海相望,感觉就

2024-11-22 10:46:34

导数、微分、积分之间的区别与联系

导数:曲线某点的导数就是该点切线的斜率,在物理学里体现了是瞬时速度,二阶导数则是加速度。这个是由牛顿提出并研究的方向。微分:也就是把函数分成无限小的部分,当曲线无限的被缩小后,可以近似当作直线对待,微分也就能表示为导数与dx的乘积。这个是莱布尼兹提出并研究的方向。其实导数和微分本质上说并无区别,只是

2024-11-22 10:33:05

longines手表怎么看真假(浪琴手表鉴定真假技巧)

浪琴手表一直是很多妹子的心头好,因为款式经典利润空间大,市面上有很多仿品,今天教大家几点鉴定方法,让你拿到手表就可以分辨真假哦!一:针轴和针尖每个人拿到手表后最先关注的应该都是表盘,高级制表的表盘往往工艺繁复,比如珐琅面、镂空工艺、贝壳面等等。假表往往因为成本原因,所用材质无法和正品一致,所以一定程

2024-11-22 10:17:43

本是青灯不归客是什么意思(“本是青灯不归客,却因浊酒留风尘”的意境解析)

“本是青灯不归客。却因浊酒留风尘”是一首网红诗,最开始有人在微薄发帖:本是青灯不归客。在评论里点赞最多的就是这句,却因浊酒留风尘。细细推敲意境欠缺些许很网友认为这首诗的来源是《红楼梦》第五回《金陵十二钗》正册中惜春的判词:可怜绣户侯门女,独卧青灯古佛旁。其实这里只是青灯古佛的出处,惜春在最美妙的年纪

2024-11-22 10:03:31

五壮士谁没死怎么找到的(狼牙山五壮士2人幸存,谁是救命恩人?)

1986年9月25日,在狼牙山巅,一座宏伟的“五壮士纪念塔”落成了。纪念塔高21.5米,聂荣臻元帅亲笔题词,远远望去,巍峨壮观。群峰浩瀚,狼牙山上郁郁葱葱,树木葱茏,江山无言,可英雄的故事早已传遍千家万户。45年前,为了掩护八路军总部和附近乡亲们转移,五个大无畏的青年战士诱敌上山,并壮烈牺牲。在纪念

2024-11-22 09:48:56