데이터 분석 기술 블로그

EXISTS 연산자 본문

SQL/개념

EXISTS 연산자

데이터분석가 이채은 2024. 11. 28. 14:03

EXISTS 연산자란?

"EXISTS"는 서브쿼리의 결과가 존재하는지 확인하는 데 사용되는 조건 연산자입니다. 주로 데이터 존재 여부를 확인하고, 참(TRUE) 또는 거짓(FALSE) 값을 반환합니다.


EXISTS의 기본 구문

SELECT column1, column2
FROM table_name
WHERE EXISTS (
    SELECT 1
    FROM another_table
    WHERE condition
);

 

  • EXISTS:
    • 서브쿼리가 하나 이상의 결과를 반환하면 TRUE를 반환.
    • 서브쿼리가 결과를 반환하지 않으면 FALSE를 반환.
  • 서브쿼리:
    • EXISTS 내부의 쿼리는 실제 데이터를 반환하는 것이 아니라 결과가 존재하는지 여부만 확인.

EXISTS의 특징

 

  1. 빠른 처리:
    • EXISTS는 서브쿼리의 결과 행 개수와 상관없이, 첫 번째로 확인되는 결과가 있을 때 즉시 TRUE를 반환하므로 효율적입니다.
  2. SELECT 내용은 상관없음:
    • 서브쿼리 내부의 SELECT는 실제로 반환되는 값을 중요하게 여기지 않으므로 **SELECT 1**이나 **SELECT ***를 사용할 수 있습니다.
    • 권장: SELECT 1 (의미 전달이 명확).
  3. TRUE/FALSE 반환:
    • 서브쿼리가 참이면 EXISTS는 해당 행을 선택.
    • 서브쿼리가 거짓이면 해당 행을 제외.

EXISTS와 IN


예제

 

 

1. EXISTS로 데이터 존재 확인

문제: 고객이 주문을 한 경우에만 고객 이름 반환.

SELECT name
FROM Customers C
WHERE EXISTS (
    SELECT 1
    FROM Orders O
    WHERE C.customer_id = O.customer_id
);

 


2. NOT EXISTS 사용

문제: 주문을 하지 않은 고객의 이름 반환.

SELECT name
FROM Customers C
WHERE NOT EXISTS (
    SELECT 1
    FROM Orders O
    WHERE C.customer_id = O.customer_id
);

'SQL > 개념' 카테고리의 다른 글

LIMIT 절  (0) 2024.11.30
WITH 절  (0) 2024.11.29
UNION 연산  (0) 2024.11.27
LOWER 함수  (0) 2024.11.26
UPPER 함수  (0) 2024.11.25