학습 자료

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 테이블 구조

실행 결과