학습 자료

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
  • 데이터 비교, 변경 추적, 누락된 값 분석 등에 유용합니다.
Quiz
0 / 1

첫 번째 쿼리에는 존재하지만 두 번째 쿼리에는 없는 행을 찾으려면 어떤 SQL 연산을 사용하나요?

첫 번째 쿼리에는 존재하지만 두 번째 쿼리에는 없는 행을 찾으려면 연산을 사용합니다.
UNION
INTERSECT
EXCEPT
JOIN

학습 자료

AI 튜터

도움말

코드 에디터

코드 실행
코드 생성

DB 테이블 구조

실행 결과