1.引用一句话:
如果数据量很小的话,in和exists的差距是忽略不计的,但数据量很大时差距就很大了!in会在先执行一次后面的大表中的全表扫描,然后生成一个新的虚表再进行全表扫描,而exists只执行一次后面的大表的扫描,每次扫描为真时就返回,继续往下走!所以在数据量很大时这个效率的差距也是惊人的!
2. select * from dept where exists(
select * from emp where dept.deptno=emp.deptno);
黄色标记处,貌似select *,select 1,select null 得出的结果是一致的。