EXISTS는 서브쿼리의 결과가 “한 건이라도 존재하면” TRUE 없으면 FALSE를 리턴

EXISTS는 서브 쿼리에 일치하는 결과가 한 건이라도 있으면 쿼리를 더 이상 수행하지 않는다.

EX)

SELECT a.emp_no, a.name, a.deptno
FROM emp a
where a.job = "MANAGER'
AND NOT EXISTS(SELECT 1
			   FROM dept_history aa
			   WHERE aa.empno = a.empno)

→ dept_hisotry 테이블에 데이터가 존재하지 않는 값만 조회된다.

IN과 EXISTS의 차이

  • IN은 서브쿼리 결과를 모두 수행하고, EXISTS는 일치하는 결과가 있으면 더 이상 수행하지 않는다.
  • 서브 쿼리 테이블(dept_history)에 데이터량이 많으면 EXISTS를 사용하는 것이 성능이 좋다.

— 보통 결과 값은 같음, 성능의 차이

'DB' 카테고리의 다른 글

FETCH / OFFSET  (0) 2022.10.24
COALESCE  (0) 2022.10.24
테이블 컬럼 카멜 표기법 변환기  (0) 2022.10.24
Mybatis 동적쿼리 <trim> 개념 및 문법 총 정리  (0) 2022.10.24
PL/SQL에 Excel Import  (0) 2022.10.24

+ Recent posts