본문으로 건너뛰기
실습하기

INTERSECT와 EXCEPT

INTERSECTEXCEPT는 두 개의 SELECT 쿼리 결과를 비교할 때 사용하는 집합 연산자입니다.

  • INTERSECT: 두 결과 집합에 모두 존재하는 행만 반환
  • EXCEPT: 첫 번째 쿼리에는 있고 두 번째 쿼리에는 없는 행을 반환

문법

INTERSECT는 다음과 같이 두 쿼리의 결과를 비교할 때 사용할 수 있습니다.

INTERSECT 문법
SELECT column1, column2
FROM tableA
INTERSECT
SELECT column1, column2
FROM tableB;

EXCEPT의 문법도 유사하지만, 첫 번째 쿼리에는 있고 두 번째 쿼리에는 없는 행을 반환합니다.

EXCEPT 문법
SELECT column1, column2
FROM tableA
EXCEPT
SELECT column1, column2
FROM tableB;

규칙

  • 두 쿼리는 동일한 열 개수를 반환해야 합니다.
  • 각 열의 데이터 타입이 호환되어야 합니다.
  • 최종 열 이름은 첫 번째 SELECT 쿼리에서 가져옵니다.

예시: 두 해의 사용자 데이터 비교

2023년과 2024년 가입자를 비교한다고 가정합니다.

users_2023

user_idname
1지민
2서준
3민서

users_2024

user_idname
1지민
3민서
4하준

INTERSECT 예시

INTERSECT 쿼리
SELECT user_id, name
FROM users_2023
INTERSECT
SELECT user_id, name
FROM users_2024;

결과:

user_idname
1지민
3민서

→ 2023년에만 가입한 사용자를 찾을 수 있습니다.


EXCEPT 예시

EXCEPT 쿼리
SELECT user_id, name
FROM users_2023
EXCEPT
SELECT user_id, name
FROM users_2024;

결과:

user_idname
2서준

→ 2023년에만 가입한 사용자를 찾을 수 있습니다.


INTERSECT와 EXCEPT를 사용할 때는 어떠한 경우일까?

  • 공통 데이터 찾기 → INTERSECT
  • 한쪽에만 존재하는 데이터 찾기 → EXCEPT
  • 데이터 비교, 변경 추적, 누락된 값 분석 등에 유용합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!