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()不一样.子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去.符合要求的输出,反之则不输出.


相关推荐

墙上挂网多少钱

墙上挂网的价格因多种因素而异,包括挂网的类型、材料、施工难度以及所在地区的不同。以下是一些具体的价格信息:一般价格范围墙面挂网的价格大约在每平方米6元至10元之间。某些情况下,价格可能会在每平方米100元以上。具体价格因素材料:钢丝网通常比塑料网贵一些。施工难度:如果墙面状况较差,需要大量修补和处理

2025-02-01 09:19:22

课桌大约长多少米

课桌的长度并没有一个统一的标准,但根据常见的课桌尺寸信息,可以得出以下结论:一般情况下,课桌的长度约为1.2米。课桌的长度通常在1.2米到1.5米之间。特定类型课桌长度,例如单人课桌长度通常在65厘米到75厘米之间,双人课桌长度可能在1.1米到2米之间。一般中小学双人课桌长度约1米至1米3之间。综合

2025-02-01 09:16:22

最佳桌子高度是多少

桌子高度的最佳选择取决于使用者的身高和使用环境。以下是一些常见建议:一般适用高度71厘米至75厘米:这是一个较为普遍接受的高度范围,适合大多数人使用,可以保证坐着不会感到难受,便于学习、工作和吃饭等日常活动。根据使用者身高调整学生书桌:可以根据学生的身高来调整桌子的高度,确保书写姿势正确。餐桌:根据

2025-02-01 09:12:55

被褥干洗多少钱

被褥的干洗费用 因多种因素而异,包括被子的尺寸、材质、重量以及干洗店的类型和档次。以下是一些具体的价格范围:普通干洗店价格通常在20元到50元之间,具体费用取决于被子的尺寸和材质。中档干洗店价格在30元到80元之间,一些高档的被子如羊绒被或羽绒被可能需要支付更高的费用。高档干洗店价格在60元到100

2025-02-01 09:08:22

打印征信费用多少

打印征信报告的费用如下:前两次免费:如果是在一年之内,前两次打印征信报告是免费的。第三次起收费:从第三次开始,每次打印征信报告需要支付20元到25元的费用。费用差异:不同城市的收费标准可能会有所不同,但一般情况下,费用大约在20元到30元之间。额外费用:如果需要更频繁地查询或获取详细的信用信息,个别

2025-02-01 07:42:54