Oracle的EXISTS

--EXISTS 是 sql中的一个条件运算符,它用于判断一个子查询是否返回了一个结果集,如果返回结果集,则返回true ,否则返回 False

EXISTS 语法:

SELECT 
字段名
FROM  表1
WHERE 筛选条件
AND EXISTS(
SELECT 1 FROM 表2 
WHERE 值1 =值2 -- 关联的字段
AND 筛选条件
)

查询那个部门没有人 

SELECT 
DEPTNO 
FROM DEPT D
WHERE NOT EXISTS (
SELECT 1 
FROM EMP E 
WHERE E.DEPTNO = D.DEPTNO);

-- IN 和 EXISTS 在查询效率上的区别 主要取决于 具体的查询语句,和数据量

一般来说, 在数据量小的情况下, IN 和 EXISTS 的查询效率差别不大, 甚至 IN 可能 略微优于 EXISTS
但是,在处理大量数据的时候, EXISTS 往往比 IN 更快.

因为 , EXISTS 使用了一种被称为半连接的计数,只需要查找一次匹配项即可返回结果, 而 IN 需要扫描 整个集合来查找匹配项 

猜你喜欢

转载自blog.csdn.net/weixin_57024726/article/details/133202195