oracle-not in 和not exists的区别
2013-04-20 13:59
495 查看
oracle-not in 和not exists的区别
1.not in 和not exists效率上的区别在查询语句中使用not in的时候会对内表进行全表扫描,没有用到索引。而not exists的子查询仍然会用到表上的索引。所以无论的大表还是小表,使用not exists都会比使用not in 要快。当然这的前提是表中有索引。
2.not in 和not exists结果上的区别
Query Q1
SELECT *
FROM UnitOfStudy
WHERE uosCode NOT IN (
SELECT mainUnit
FROM AcademicStaff
WHERE deptID = 'SIT' )
Query Q2
SELECT *
FROM UnitOfStudy u
WHERE NOT EXISTS (
SELECT *
FROM AcademicStaff
WHERE deptID='SIT' AND mainUnit=u.uosCode )
---------------------
如果AcademicStaff 表中 有一条记录deptID = 'SIT',mainUnit = null。这个时候not in语句跑出来的结果将会是空的。而not exists结果会是正确的。
相关文章推荐
- 【转载】[ORACLE]详解not in与not exists的区别与用法
- oracle中in,not in和exists,not exists之间的区别
- oracle中in,not in和exists,not exists之间的区别
- oracle中in,not in和exists,not exists之间的区别
- [ORACLE]详解not in与not exists的区别与用法(not in的性能并不差!)
- ORACLE]详解not in与not exists的区别与用法
- oracle中in,not in和exists,not exists之间的区别
- [ORACLE]详解not in与not exists的区别与用法
- Oracle 中in ,not in 和exists,not exists之间的区别
- oracle中in,not in和exists,not exists之间的区别
- 注意事项: Oracle Not Exists 及 Not In 使用
- not in 与not exists的区别与用法
- 对于not in 和 not exists的性能区别:
- not in 和 not exists 区别
- oracle 中exists,not exists的用法以及和exists和in的区别
- oracle exists&not exists用法及与in&not in比较(10g)-开发系列(四)
- 浅谈sql中的in与not in,exists与not exists的区别以及性能分析
- sql中 in 、not in 、exists、not exists 使用方法和区别
- exists 和not exists 用法简介及与IN和not In的区别
- 浅谈sql中的in与not in,exists与not exists的区别