两者都能实现表功能查询,主要区别如下:

1、适用表的类型不同。

in是子查询为驱动表,外面的表为被驱动表,故适用于子查询结果集小而外面的表结果集大的情况。

exists是外面的表为驱动表,子查询里面的表为被驱动表,故适用于外面的表结果集小而子查询结果集大的情况。

2、子查询关联不同。

exists一般都是关联子查询。对于关联子查询,必须先执行外层查询,接着对所有通过过滤条件的记录,执行内层查询。外层查询和内层查询相互依赖,因为外层查询会把数据传递给内层查询。

in则一般都是非关联子查询,非关联子查询则必须先完成内层查询之后,外层查询才能介入。

3、执行次数不同。

IN 语句:只执行一次,确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。

EXISTS语句:执行次数根据表的长度而定。指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。

sql中in和exist语句的区别?相关推荐

  1. SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总)

    SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总) 2008年10月14日 星期二 23:57 一.SQL中char varchar nchar nvar ...

  2. SQL中的or与in的区别

    SQL中的or与in的区别 or与in一样的案例(条件里只有a时) a in (1,2,3) a = 1 or a = 2 or a = 3 or与in不一样的案例(条件里不止a时) where a ...

  3. 解决数据倾斜一:RDD执行reduceByKey或则Spark SQL中使用group by语句导致的数据倾斜

    一:概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的 ...

  4. mysql 查询后根据值的不同进行判断与修改,SQL中的条件判断语句(case when zhen)用法

    需求: mysql 查询后根据值的不同进行判断与修改 语法结构: SQL中的条件判断语句(case when zhen)用法 SELECT A.品号,属性,        CASE           ...

  5. SQL 中条件、循环语句的应用整理

    引言: 作为程序员一族,无论是任何语言,最基本的语句都离不开顺序.条件(选择).循环这三大逻辑结构,有些知识不经常使用的话就会模糊,所以即使是很简单的知识点也想做个总结. 1.条件分支(SQL中的条件 ...

  6. SQL中的CASE WHEN语句

    有这样一道面试题: 一张表数据如下 1900-1-1 胜 1900-1-1 胜 1900-1-1 负 1900-1-2 胜 1900-1-2 胜 写出一条SQL语句,使检索结果如下: 胜 负 1900 ...

  7. 深入理解 SQL 中的 Grouping Sets 语句

    前言 SQL 中 Group By 语句大家都很熟悉,根据指定的规则对数据进行分组,常常和聚合函数一起使用. 比如,考虑有表 dealer,表中数据如下: id (Int) city (String) ...

  8. sql中几种删除语句的比较和基础用法

    sql中有三种删除语句 delete.drop.truncate 1.delete 基础用法:delete from table(表名) [where] 用法理解:用于删除有明确定义的数据或者整个表的 ...

  9. SQL中的cast 和convert的区别,日期操作

    SQL Server 日期格式和日期操作 SQL Server发展至今, 1.关于日期的格式的控制方法, 有传统的方法,比如CONVERT(), 也有比较便利的新方法,比如FORMAT(): eg: ...

最新文章

  1. 深度神经网络中的局部响应归一化LRN简介及实现
  2. 图解NumPy:常用函数的内在机制
  3. 机器学习实战的P264中代码对应的公式推导
  4. JAVA的彻底删除重下
  5. html整合vue elementui,vue2.0结合Element-ui实战案例
  6. 巧妙喝水打败多种疾病(节选)
  7. 总结:Sharepoint2010 Client Object Model -- ECMAScript Client
  8. 剑指offer 面试题62. 圆圈中最后剩下的数字
  9. 报告正在使用哪些Reporting Services数据集字段?
  10. 在centos linux上安装jdk7
  11. Java修饰符public,private,protected及默认的区别
  12. 计算机网络-应用层与传输层
  13. turbo c 混编 汇编语言,Turbo C 编译 嵌入汇编
  14. php一键集成环境安装包,APMXN集成环境一键安装包(php环境一键安装包)V1.0.2 最新版...
  15. linux cp 性能,linux性能监控以及优化之CPU
  16. 使用JACOB给WORD添加水印
  17. 使用JAVA实现看吉日/黄道吉日/看日子功能的开发方法
  18. 练习记录-用FSL工具对DTI数据进行FDT预处理
  19. C语言学习笔记(浙大翁恺版)第一周
  20. WebView-WebViewClient详解

热门文章

  1. [转载] python 元组tuple - python基础入门(14)
  2. stl向量_如何检查C ++ STL中向量中是否存在元素?
  3. oracle光标位置无效,解决在Form表单中光标移动不了问题
  4. wpf中groupbox有什么用_展示设计中的标摊是什么 用的什么材料
  5. jsonobject转list集合_怎样优雅的操作集合,CollectionUtils工具类正确使用姿势
  6. 背景图页面缩小会变形_社团招新迎新海报背景图第321期
  7. c#中.clear()作用_清单 .Clear()方法以及C#中的示例
  8. 将所有文件从目录复制到Python中的另一个目录
  9. MySQL 面试题汇总
  10. 给 JDK 官方提了一个 Bug,结果...