关于oracle中的in 和 exist
来源:互联网 发布:mac如何看电池损耗 编辑:程序博客网 时间:2024/06/06 00:22
有时候会将一列和一系列值相比较。最简单的办法就是在where子句中使用子查询,在where子句中可以使用两种格式的子查询
1、 使用in操作符
2、 使用exist操作符
第一种格式比较容易编写,第二种格式要比第一种格式执行效率高。在oracle中几乎可以将所有的in操作符子查询改写为使用exist的子查询
In与exist的区别:
运用exist子句不管子查询从表中抽取什么数据它只查看where子句。这样优化器就不必遍历整个表而仅根据索引就可以完成工作(这里假定在where语句中使用的列存在索引)。相对应in子句来说,exist使用相连子查询,构造起来要比in子查询困难一些。
通过使用exist,oracle系统会首先检查主查询,然后运行子查询知道它找到第一个匹配项,这就节省了时间。
Oracle系统在执行in子查询时,首先执行子查询,并将获得的结果列表存放在一个加了索引的临时表中。在执行子查询之前,系统会先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。这也就是使用exist比使用in 通常查询速度快的原因
注:Not in 里面有空值,查询出得结果一定是空值
- 关于oracle中的in 和 exist
- oracle in和exist比较
- ORACLE 中exist和in的区别
- sql中的in 和 exist 区别
- sql中的exist 和in 的区别
- oracle in exist 比较
- oracle函数in exist
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- in 和 exist 区别
- JavaScript名字由来
- tomcat的JVM设置和连接数设置
- MYSQL中文参考手册--创造并使用一个数据库
- 关于c语言中变量赋值问题
- 通过用数组名作函数参数来实现选择排序法
- 关于oracle中的in 和 exist
- poj 3971
- 电子邮件的五层协议
- java产生随机数的方法。
- hdoj 1301 Jungle Roads
- configSections
- 生产者、消费者
- 博客突破10万写点东西
- Megaupload关闭波及Filesonic 分享功能被停