高级sql学习——exists和not exists的使用!!!
来源:互联网 发布:mysql的存储引擎 编辑:程序博客网 时间:2024/05/06 20:27
1. exists的使用
Exists 用于只能用于子查询,可以替代in,若匹配到结果,则退出内部查询,并将条件标志为true,传回全部结果资料。in 不管匹配到匹配不到都全部匹配完毕,使用exists 可以将子查询结果定为常量,不影响查询效果,而且效率高。
In和exists对比:若子查询结果集比较小,优先使用in,若外层查询比子查询小,优先使用exists。因为若用in,则oracle 会优先查询子查询,然后匹配外层查询,若使用exists,则oracle 会优先查询外层表,然后再与内层表匹配。最优化匹配原则,拿最小记录匹配大记录。
(这里使用的是oracle数据库自带的测试表emp和dept)
使用in:
使用exists:
结果:
2 not exists的使用
与exists 含义相反,也在子查询中使用,取出不满足条件的,与not in有一定的区别,注意有时候not exists不能完全替代not in。
3.not exists和not in不同的情况:
- 高级sql学习——exists和not exists的使用!!!
- 关于SQL中exists和not exists的使用
- sql 的EXISTS和NOT EXISTS
- exists和not exists的使用
- oracle exists和not exists的使用
- SQL - exists和not exists
- SQL的not exists使用
- sql Exists in 文章1:SQL里的EXISTS与in、not exists与not in 效率比较和使用
- SQL里的EXISTS与in、not exists与not in 效率比较和使用
- SQL里的EXISTS与in、not exists与not in 效率比较和使用
- SQL的EXISTS与in、not exists与not in 效率比较和使用
- SQL里的EXISTS与in、not exists与not in 效率比较和使用
- SQL exists not exists
- sql exists和not exists用法
- sql exists和not exists用法
- sql exists和not exists用法
- sql exists和not exists用法
- SQL 子查询 EXISTS 和 NOT EXISTS
- 即时通讯的企业应用和个人应用的区别
- VS2005中CString与char *的转换(网摘)
- 现代办公通讯手段对比分析
- buffer
- 根据位图创建Region
- 高级sql学习——exists和not exists的使用!!!
- 软件开发模型
- SQL 语句性能调优
- Address Windowing Extensions
- 把C++/CLI委托传入本地代码
- oracle学习笔记(四)关于shutdown、startup几个参数
- 安装SQL2008问题
- 模板之小试牛刀---我有点明白为什么这么多人骂c++了
- java static关键字