EXIST 함수

Minsu Kang·2025년 4월 9일

✅ SQL에서 EXISTS의 동작 원리와 모든 행을 찾는 방법

SQL에서 EXISTS는 서브쿼리의 결과에 조건을 만족하는 행이 하나라도 존재하는지 여부만 판단합니다. 첫 번째로 조건을 만족하는 행을 찾으면 즉시 TRUE를 반환하고, 나머지 행은 검사하지 않습니다.

SELECT *
FROM customers c
WHERE EXISTS (
    SELECT 1
    FROM orders o
    WHERE o.customer_id = c.customer_id
);

모든 데이터를 검색?

JOIN 사용

SELECT c.*, o.*
FROM customers c
JOIN orders o ON o.customer_id = c.customer_id;

고객별 모든 주문 데이터를 조회할 수 있음

조건을 만족하는 모든 행을 반환

IN 사용

SELECT *
FROM customers
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
);

참고

EXISTS는 성능상 유리할 수 있음 (특히 인덱스가 있는 경우)

다만, 결과 자체가 필요한 경우에는 JOIN 등으로 전환해야 함

항상 실행 계획(Explain Plan)을 통해 성능 확인 권장

profile
안녕하세요! 강민수입니다.

0개의 댓글