`
马莘桐
  • 浏览: 2889 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Exists与In的区别

阅读更多

最近在check项目的数据库,check到存储过程,里面看到存储过程有用到in 和 exsits.整理下 in 和 exsits 的区别:

 

in 是把外表和内表做hash join,而exists是对外表做loop, 每次loop再对内表进行查询.如此,exists适合外表结果集很小的情况.其他情况则使用in.

 

not in 与 not exsits 的区别:

 

两者都首先调用子查询,但如果子查询记录中有包含空值的记录.not in 不返回任何值. 所以尽量使用not exsits.

 

当然如果子查询字段有非空限制,这时也可以使用not in.

分享到:
评论

相关推荐

    in和exists的区别

    "EXISTS"子句通常与一个子查询一起使用,它并不关心子查询返回的具体值,而是关注子查询是否能返回至少一行数据。例如: ```sql SELECT * FROM Table1 WHERE EXISTS (SELECT 1 FROM Table2 WHERE Table1.a = Table...

    in和exists的区别与执行效率问题解析

    ### IN与EXISTS的基本区别 1. **语法结构**: - `IN`语句用于检查某个值是否存在于一个列表或子查询的结果集中。其基本语法为:`SELECT * FROM table WHERE column IN (value_list)` 或者 `SELECT * FROM table ...

    SQL里的EXISTS与IN

    根据给定的信息,本文将详细解析`EXISTS`与`IN`的区别以及如何在SQL优化过程中将`IN`转换为`EXISTS`来提高查询性能。 ### SQL优化需求背景 在系统开发与维护的过程中,经常会出现SQL查询效率低下、响应时间过长等...

    sql in,exists,not in,not exists区别

    SQL 中 IN、EXISTS、NOT IN、NOT EXISTS 的区别 IN、EXISTS、NOT IN、NOT EXISTS 是 SQL 中四种常用的条件判断运算符,它们之间的区别主要体现在使用场景、执行效率和语法结构上。 IN IN 是一种条件判断运算符,...

    oracle中exists_和in的效率问题详解

    1. IN 的子查询必须返回一个结果集,用于与外部查询进行比较。 2. IN 只关心子查询的结果集是否包含指定的值。 3. IN 可以使用在 WHERE 子句中,以判断某个值是否存在于子查询的结果集中。 效率问题 在使用 EXISTS...

    QL中exists 与 in_的比较

    在数据库查询语言QL中,`exists`与`in_`(通常写作`IN`)是两种常见的用于子查询的语法结构,它们各自有着独特的应用场景和性能表现。理解这两种语法的区别对于优化查询效率至关重要。 ### `exists`与`in_`的基本...

    SQL中EXISTS与IN

    ### SQL中EXISTS与IN的区别及应用场景 #### EXISTS详解 **定义与原理** - **基本概念**:`EXISTS` 是 SQL 中的一个谓词,用于判断子查询是否有结果返回,而不是关心具体的返回值。它主要关注子查询是否至少有一行...

    sql case when exists not exists in not in

    而`IN`和`NOT IN`在处理简单条件时较为直观,但如果与子查询结合,可能会导致全表扫描,影响性能。 在进行SQL晋级学习时,理解并熟练掌握这些操作符的用法至关重要。通过不断地实践和优化,能够编写出更高效、更...

    经典SQL查询总结关于Exists,not Exists.in ,not in效率的说明。

    - **WHERE** 与 **HAVING** 子句的区别 - `WHERE` 子句用于筛选数据,在对数据进行聚合前应用。 - `HAVING` 子句则是在聚合操作之后对结果进行筛选。 - **分组** (`GROUP BY`) 与聚合函数的使用 - 使用 `GROUP BY...

    sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句

    SQL语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句 SQL语句优化是数据库性能优化的重要方面之一。在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下,使用EXISTS...

    MySQL exists 和in 详解及区别

    ### `EXISTS`与`IN`的区别 1. **性能**:在某些情况下,`EXISTS`可能比`IN`更快,尤其是当子查询返回大量数据时。`EXISTS`通常可以更早地停止执行,而`IN`可能需要扫描整个结果集。 2. **返回值**:`EXISTS`仅检查...

    in和exists性能解析

    本文将深入解析Oracle中`IN`与`EXISTS`的性能差异,以及如何根据具体需求选择最合适的查询方式。 ### IN子句 `IN`子句主要用于比较一个表达式是否存在于另一个子查询的结果集中。当使用`IN`子句时,数据库引擎会...

    “exists”和“in”的效率问题

    ### "Exists"与"In"的效率问题详解 #### 引言 在数据库查询语言SQL中,“Exists”与“In”是两种常用的子查询方法,它们在实际应用中各有优势与局限。本文将深入探讨这两种方法的工作原理、应用场景以及性能差异,...

    in与exists之争(11g).sql

    in与exists之争(11g).sql

    sql exists和not exists用法

    相较于`IN`、`NOT IN`等操作,`EXISTS`与`NOT EXISTS`具有更高的效率,尤其是在处理大型数据集时。 #### EXISTS 介绍 `EXISTS`关键字用于检查子查询是否至少返回一行数据。如果子查询返回至少一行数据,则`EXISTS`...

    IN 和 EXIST的区别

    标题和描述均聚焦于SQL语言中“IN”和“EXISTS”的区别,这是数据库查询语言中两种常用的子查询处理方式,它们在功能上虽然相似,但在执行效率、索引使用以及适用场景上存在显著差异。 ### IN关键字 “IN”主要...

    EXISTS_和_NOT_EXISTS

    - 效率:在某些情况下,`EXISTS` 和 `NOT EXISTS` 可能会提供相似的性能,但通常 `IN` 和 `NOT IN` 比较操作符在处理大量数据时更有效。然而,当涉及到子查询时,`EXISTS` 和 `NOT EXISTS` 可能更合适,因为它们只...

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句.txt

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句.txt欢迎下载!

Global site tag (gtag.js) - Google Analytics