`

oracle exists关键字的用法。

 
阅读更多

之前对oracle的exits关键字的作用存在误区,先写此文记录一下:

 见sql:

         delete from a where exists (select null from b where b.id1=a.id1 and b.id2=a.id2)

 这里是满足 a.id1=b.id1 and a.id2=b.id2的记录均会被删除。

之前理解为只用存在满足a.id1=b.id1 and a.id2=b.id2条件的记录,那么a表中所有记录均会被删除。

这样理解是基于对oracle 内部查找机制的不熟悉,只看到的语句的前部分和字面意思导致。

所以深入理解oracle执行的机制,很重要。

分享到:
评论

相关推荐

    in和exists的区别

    在Oracle数据库中,"IN"和"EXISTS"都是用于查询某个集合的元素是否存在于另一个集合中的关键字。然而,它们在处理数据时的效率和适用场景有所不同,这主要取决于涉及的数据量以及表之间的关联。 首先,让我们来看看...

    《基于Oracle的SQL优化》PDF版本下载.txt

    如果必须使用子查询,则应考虑使用IN或EXISTS关键字代替。 7. **分区表**:对于非常大的表,可以考虑使用分区技术来提高查询性能。分区可以按照日期、范围或者列表等方式来进行。 8. **利用Oracle的内置函数**:...

    oracle-use.rar_Oracle drop use_oracle

    "按照当前层次级别排序"可能是指在层次查询中使用`CONNECT BY`和`PRIOR`关键字,这在处理树形结构的数据时非常有用。例如,`SELECT * FROM table START WITH condition CONNECT BY PRIOR id = parent_id ORDER ...

    超详细Oracle教程.pdf

    - **EXISTS子查询**:讲解如何使用EXISTS关键字优化查询效率,特别是在处理大量数据时。 #### 第八章 高级查询 - **窗口函数**:介绍OVER子句的使用,包括RANK、ROW_NUMBER等功能强大的窗口函数。 - **集合操作**:...

    超详细ORACLE培训带实例带书签目录

    - **EXISTS子查询**:使用EXISTS关键字进行存在性检查。 - **ANY和ALL操作符**:用于比较子查询中的值。 #### 第八章 高级查询 - **WITH子句**:使用WITH子句创建临时表。 - **RANK、DENSE_RANK和ROW_NUMBER**:行...

    Oracle 子查询

    ### Oracle 子查询详解 #### 引言 在数据库查询语言SQL中,子查询是一...然而,正如所有强大的工具一样,正确的使用方法和充分的性能考量是必不可少的。希望本文能为你在日常的数据库操作中提供有价值的指导和启发。

    Oracle中常用的通配符

    本文详细介绍了Oracle数据库中常用的通配符以及其他相关符号的含义及使用方法。通过这些符号的应用,可以使SQL查询更加灵活多样,有助于提高数据检索的准确性和效率。在实际工作中,掌握并熟练应用这些符号对于高效...

    Oracle认证课程目录

    - SUM、AVG、MAX、MIN 和 COUNT 等聚合函数的使用方法。 - 聚合函数与外连接结合使用的注意事项。 - **分组与组筛选** - 使用 GROUP BY 进行分组。 - HAVING 子句用于在分组后进一步筛选结果。 - **SQL 执行...

    Oracle SQL最佳实践

    在进行数据查询时,为了去除结果集中的重复行,我们通常会使用 `DISTINCT` 关键字。然而,在某些场景下,这种方法可能会导致不必要的排序操作(`SORT OPERATION`),从而降低查询效率。为了避免这种情况,我们可以...

    Oracle_Database_11g完全参考手册.part2/3

    附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 第1部分 关键的数据库概念 第1章 OracleDatabase11g体系结构 1.1 数据库和实例 1.2 数据库技术 1.2.1 存储数据 1.2.2 数据保护 1.2.3...

    Oracle_Database_11g完全参考手册.part3/3

    附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 第1部分 关键的数据库概念 第1章 OracleDatabase11g体系结构 1.1 数据库和实例 1.2 数据库技术 1.2.1 存储数据 1.2.2 数据保护 1.2.3...

    oracle官方mysql性能调优优化文档

    - **使用存在性检查代替子查询**:在某些情况下,使用EXISTS关键字比子查询更高效。 #### 七、排序(Sorting) ##### 1. 排序机制 排序操作是很多查询的一部分,特别是当涉及到GROUP BY或者ORDER BY子句时。MySQL...

    oracle 优化笔记

    4. **使用EXISTS而非IN**:当涉及到大量数据时,EXISTS关键字通常比IN更快。 5. **合理使用PARTITION BY**:对于大型表,可以通过分区来分散数据,从而提高查询效率。 #### 三、存储过程优化策略 1. **减少网络...

    Oracle树查询实例分析

    使用带有`EXISTS`子查询的方法可以找出与特定节点具有相同`sjflid`但`ID`不同的其他节点,这些就是兄弟节点。此查询方法避免了直接连接操作,但可能不是最优解,具体效率取决于数据量和索引。 除了这些基本操作,...

    Oracle SQL优化.pdf

    使用`EXISTS`子查询来代替`DISTINCT`关键字,可以避免全表扫描,提高查询速度。 **19. 识别“低效执行”的SQL语句** 定期审查执行计划,找出执行效率低下的SQL语句,并进行优化。 **20. 使用TKPROF工具来查询SQL...

    ORACLE9i_优化设计与系统调整

    §12.5 使用EXISTS和IN 148 §12.6 分离事务(Discrete Transactions ) 149 §12.7 测试SQL语句性能 151 §12.7.1 SQL_Trace实用工具 151 §12.7.2 TKPROF实用程序 151 §12.8 使用SQL_Trace和TKPROF 151 §12.8.1 ...

    Oracle树查询及相关函数

    5. **查找指定节点的所有直属及父级直属节点**:使用`START WITH...CONNECT BY`,但将`PRIOR`关键字放在`sjflid`后面,即`START WITH ID = some_id CONNECT BY PRIOR sjflid = ID`。这将返回所有直属父节点,顺序是...

    Oracle OCP认证课程大纲

    - **排序与去重**:介绍 ORDER BY 和 DISTINCT 关键字的使用方法。 - **单行函数**:通常用于在结果集中对单个值进行操作,例如日期函数、字符串函数等。 - **子查询**:包括关联子查询和非关联子查询的区别,以及...

Global site tag (gtag.js) - Google Analytics