`
peijunlin2008
  • 浏览: 171190 次
  • 性别: Icon_minigender_1
  • 来自: 河北省
社区版块
存档分类
最新评论

not in 与 not exists ,in 与 exists 的区别

 
阅读更多
in 与 exists  的区别:

语句1:
select ename from emp e where empno in (select mgr from emp);


语句2:
select ename from emp e where  exists (select 1 from emp where mgr=e.empno);


区别:in 的 语句查询会循环查询,exists 只查询一次即可,exists 查询效率较高

not in 与 not  exists的区别

语句1:
select ename from emp e where empno  not in (select mgr from emp);

由于当not in 中存在null的话讲查询出所有值

语句1修改后:
select ename from emp e where empno  not in (select mgr from emp where mgr is not null );


语句2:
select ename from emp e where not  exists (select 1 from emp where mgr=e.empno);


not  exists可以避免null值的调用,not in时刻需要考虑空值的情况,同时not  exists的效率要远远高于not in;

分享到:
评论

相关推荐

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

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

    sql case when exists not exists in not in

    在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...

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

    ### 经典SQL查询总结关于Exists, not Exists, IN, not IN 效率的说明 在数据库查询操作中,存在着多种方法来实现相似的功能,但不同的实现方式在性能上可能会有显著差异。本文将深入探讨 SQL 中 `EXISTS`, `NOT ...

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

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

    EXISTS_和_NOT_EXISTS

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

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

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

    NOT EXISTS ⇔ NOT IN ⇒ NOT NULL 问题 结果不一样 疑问 如果等效

    通过以上分析可以看出,虽然 `NOT EXISTS`、`NOT IN` 和 `NOT NULL` 在表面上看似相似,但它们之间存在着明显的区别,尤其是在处理 `NULL` 值时。因此,在实际应用中,应根据具体需求选择合适的操作符以达到最佳效果...

    exists 和 not exists的详细解释

    exists 和 not exists的详细解释

    sql exists和not exists用法

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

    MySQL中的in,exists,not in,not exists查询过程对比及结论

    MySQL优化之in,exists,not in,not exists的区别in与existsin查询过程结论:exists查询过程:结论:not in与not existsnot in查询过程:结论:not exists查询过程:结论: 首先我们使用两个用户表作为实例 insert ...

    QL中exists 与 in_的比较

    ### `NOT IN`与`NOT EXISTS` - **`NOT IN`与全表扫描**:当使用`NOT IN`时,内外表都将进行全表扫描,无法利用索引,效率低下。而`NOT EXISTS`仍然可以利用索引,因此无论表大小如何,`NOT EXISTS`通常比`NOT IN`更...

    in exist not_in

    IN、EXISTS、NOT EXISTS、NOT IN 在 SQL 语句中的应用和区别 IN 语句和 EXISTS 语句都是 SQL 语句中用来判断是否存在某个值的语句,但是它们的实现机制和应用场景是不同的。 IN 语句是通过 hash 连接来实现的,它...

    Oracle In和exists not in和not exists的比较分析

    与 `NOT IN` 相比,`NOT EXISTS` 可以利用索引来提高查询性能。例如: ```sql SELECT * FROM employees WHERE NOT EXISTS (SELECT 1 FROM departments WHERE departments.id = employees.department_id AND city = '...

    一次SQL Tuning引出来的not in , not exists 语句的N种写法2

    【标题】:“一次SQL Tuning引出来的not in , not exists 语句的N种写法2” 【描述】:文章并未直接提供描述,但从标题推测,该内容可能涉及数据库查询优化,特别是关于`not in`和`not exists`两种SQL查询子句的...

    exists SQL用法详解、exists和not exists的常用示例

    `EXISTS`和`IN`的区别在于,`IN`通常用于比较单个字段值,而`EXISTS`可以处理更复杂的查询,它关心的是子查询是否返回行,而不关心返回的具体值。`IN`通常用于获取特定值列表内的记录,而`EXISTS`则可以用于检查记录...

    INEXISTS与NOT INNOT EXISTS 的优化原则小结

    3. **NOT IN与NOT EXISTS**: - `NOT IN` 的执行效率往往取决于子查询结果集的大小。如果子查询返回大量记录,且主查询的表较大,使用`NOT IN`结合反连接或`/*+ HASH_AJ */`提示可能会更优。 - `NOT EXISTS` 在...

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

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

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

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

    IN&EXISTS与NOT IN&NOT EXISTS 的优化原则小结

    4. `NOT IN`与`NOT EXISTS`的区别: - `NOT IN`不能与`NOT EXISTS`完全互换,特别是在处理可能包含`NULL`值的列时。例如,`NOT IN`会排除所有包含`NULL`的匹配,而`NOT EXISTS`则不会。 - 当主查询表较大,子查询...

Global site tag (gtag.js) - Google Analytics