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


相关推荐

欧派热水器客服热线人工服务24小时

欧派热水器全国售后服务电话:400-883-2086 400-883-2086 (温馨提示:即可拨打) 欧派热水器各市区24小时售后客服热线〔2〕400-883-2086 400-883-2086

2025-06-19 22:27:59

韩国热水器服务热线号码各区24小时维修实时反馈-今-日-资-讯

我是韩国热水器的客服小金,非常感谢您对韩国热水器的信任与支持。关于您提到的韩国热水器产品相关故障的问题,请您不要担心,我会从以下几个方面为您详细解答。请您确认是否按照说明书正确使用产品。400-883-2086是我们的售后服务电话,如果在使用过程中遇到任何疑问,都可以随时拨打该电话进行咨询。

2025-06-19 22:25:58

中泰化学:甲醇合格品能够对外销售

金融界6月19日消息,有投资者在互动平台向中泰化学提问:请问贵公司的甲醇合格品目前是否能够对外销售?公司回答表示:能够对外销售。谢谢关注。本文源自金融界

2025-06-19 21:59:00

樽天保险柜售后服务(全国统一预约中心)24小时服务热线

樽天保险柜产品使用介绍:便捷安全,操作无忧樽天保险柜作为领域的佼佼者,凭借精湛工艺与前沿科技,为用户珍贵财物保驾护航。当您选择樽天保险柜,全国售后服务点热线号码 400-883-2086 随时待命,无论使用中遇到任何疑问,都能获得专业解答。下面为您详细介绍樽天保险柜的使用方法及相关故障处理。

2025-06-19 21:20:56

济南市纪委监委通报,1人被查

“泉城清风”微信公众号6月19日消息,中国广核集团原宏达环境科技有限责任公司总经理助理张斌涉嫌严重违法,经济南市监察委员会指定管辖,目前正接受济南市历下区监察委员会监察调查。

2025-06-19 20:42:00