【数据库摘要】5_Sql_IN

news/2025/5/29 3:25:06

IN 操作符

IN 操作符同意您在 WHERE 子句中查找多个值。

SQL IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

IN 操作符实例

(使用Northwind样本数据库) SELECT * FROM Customers WHERE City IN ('Paris','London');

MongoDB 语法

db.collection.find( { type: { $in: [ 'food', 'snacks' ] } } )

EXISTS

NOT EXISTS,exists的使用方法跟in不一样,一般都须要和子表进行关联,并且关联时,须要用索引,这样就能够加高速度

exists是用来推断是否存在的,当exists(查询)中的查询存在结果时则返回真,否则返回假。not exists则相反。

in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来觉得exists比in效率高的说法是不准确的。

假设查询的两个表大小相当,那么用in和exists区别不大。

假设两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:

比如:表A(小表),表B(大表)

  • select * from A where cc in (select cc from B)效率低,用到了A表上cc列的索引;

  • select * from A where exists(select cc from B where cc=A.cc)效率高,用到了B表上cc列的索引。

  • select * from B where cc in (select cc from A)效率高,用到了B表上cc列的索引;

  • select * from B where exists(select cc from A where cc=B.cc)效率低,用到了A表上cc列的索引。

not in 和not exists假设查询语句使用了not in 那么内外表都进行全表扫描,没实用到索引;

而not extsts 的子查询依旧能用到表上的索引。所以不管那个表大,用not exists都比not in要快。


你也能够訪问http://txidol.github.io 获取很多其它的信息

转载于:https://www.cnblogs.com/hrhguanli/p/3910159.html

文章来源:https://blog.csdn.net/weixin_30466421/article/details/98807699
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-17312.html

相关文章

博客园数学公式

博客园数学公式 首先:进入博客园>>管理>>选项>>启用数学公式支持 使用:将公式写在中 \( 此处填写公式内容 \) ,去掉全部引号 举例:‘\(’a^{5}a^{2}*a^{3}‘\)’ 显示:\(a^{5}a^{2}*a^{3}\) \(F_{…

springCloud 整合 sentinel最基本入门Demo-1,接入到sintinel web控制台,并以控制台方式配置限流规则,以注解的方式定义资源

1 添加依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2.2.1.RELEASE</version> </dependency> 2 配置application.yml文件 spring:appl…

微信中使用表情符号代码,你一定用得上

表情图片字符串代码替换关键字/::)微笑/::~伤心/::B美女/::|发呆/:8-)墨镜/::<哭/::$羞/::X哑/::Z睡/::’(哭/::-|囧/::怒/::P调皮/::D笑/::O惊讶表情图片字符串代码替换关键字/::(难过/::酷/:–b汗/::Q抓狂/::T吐/:,P笑/:,-D快乐/::d奇/:,o傲/::g饿/:|-)累/::!吓/::L汗/::&…

summer 2014 Round 4 解题报告

Day 2: K-hash: 这道题其实只要懂了后缀自动机就不难了。不过我还是做了很久。本来以为用个sort就可以让所有的节点按val从小到大排序&#xff0c;然后就能递推了。调试良久后发现排序后数组中每个元素的地址不会发生变化&#xff0c;只是值发生变化了&#xff0c;所以排序是没…

springCloud-Feign 整合 sentinel最基本入门Demo-2,接入到sintinel web控制台,并以控制台方式配置限流规则

前提&#xff1a;SpringCloud-Feign消费者调用生产者&#xff0c;工程环境可参考如下博文https://blog.csdn.net/qq_41712271/article/details/104757725假如需求&#xff1a;订单服务 调用 产品服务 1 在 订单工程 的项目中&#xff0c;添加依赖 <dependency><group…

ubuntu15.04 安裝hadoop2.6.0 及eclipse开发环境配置

本文基本按照kinglau的方法安装, 在此表示感谢. 附主要参考的三篇文章 http://www.cnblogs.com/kinglau/p/3794433.html 单机模式安装 http://www.cnblogs.com/kinglau/p/3796164.html 伪分布式安装 http://www.cnblogs.com/kinglau/p/3802705.html eclipse开发环境配置…

饭可以乱吃,有些英语却不能乱说!

Sporting house 妓院&#xff08;不是体育室&#xff09; Dead president 美钞&#xff08;不是死了的总统&#xff09; Lover 情人&#xff08;不是爱人&#xff09; Busboy 餐馆勤杂工&#xff08;不是公汽售票员&#xff09; Busybody 爱管闲事的人&#xff08;不是大忙人&a…

spring-cloud-stream 整合rabbitmq 入门Demo-1

本Demo的spring boot 版本为 2.2.4.RELEASE &#xff0c;Rabbitmq的版本3.8.2生产者&#xff0c;消费者工程 添加依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-stream-binder-rabbit</artifactId>&…

如何高效快捷检索得到核心文献?

转载于:https://www.cnblogs.com/yymn/p/4556948.html

FetchProfile类的作用

转自 http://wangxinlong889.blog.163.com/blog/static/1285574182010102425128501/ javax.mail.FetchProfile类的应用。FetchProfile类提供邮件协议提供者特有可选参数&#xff0c;其目的是更有效地实现邮件组成成 分的预提取。Java Mail API鼓励延迟提取邮件成分——即仅在真…