UNION과 UNION ALL
UNION
과 UNION ALL
은 두 개 이상의 SELECT
쿼리 결과를 결합하는 SQL 집합 연산입니다.
UNION
은 중복을 제거하고, UNION ALL
은 중복을 포함한 모든 행을 반환합니다.
서로 다른 소스의 행을 하나의 통합된 결과로 합칠 수 있습니다.
Syntax
UNION
과 UNION ALL
의 기본 문법은 다음과 같습니다.
UNION 문법
SELECT column1, column2 FROM table1 UNION [ALL] SELECT column1, column2 FROM table2;
규칙:
- 각 쿼리는 동일한 개수의 열을 반환해야 합니다
- 데이터 타입이 서로 호환되어야 합니다
- 결과 집합의 열 이름은 첫 번째
SELECT
에서 가져옵니다
예시: 코드프렌즈 사용자(두 해 비교)
2023년과 2024년에 가입한 사용자를 분석한다고 가정해봅시다.
두 개의 테이블이 있습니다.
users_2023
user_id | name |
---|---|
1 | 지민 |
2 | 서준 |
3 | 하윤 |
users_2024
user_id | name |
---|---|
1 | 지민 |
3 | 하윤 |
4 | 도윤 |
예시: UNION
다음 쿼리는 두 해의 모든 사용자를 반환합니다.
UNION 사용
SELECT user_id, name FROM users_2023 UNION SELECT user_id, name FROM users_2024;
결과:
user_id | name |
---|---|
1 | 지민 |
2 | 서준 |
3 | 하윤 |
4 | 도윤 |
UNION
은 중복을 제거하므로 동일한 행은 한 번만 반환됩니다.
예시: UNION ALL
다음 쿼리는 중복을 포함해 두 해의 모든 사용자를 반환합니다.
UNION ALL 사용
SELECT user_id, name FROM users_2023 UNION ALL SELECT user_id, name FROM users_2024;
결과:
user_id | name |
---|---|
1 | 지민 |
2 | 서준 |
3 | 하윤 |
1 | 지민 |
3 | 하윤 |
4 | 도윤 |
언제 사용할까
- 중복을 제거하려면
UNION
사용 - 성능이 중요하거나 중복 행이 의미가 있을 때는
UNION ALL
사용
UNION ALL
은 중복 제거 과정을 건너뛰므로 일반적으로 더 빠릅니다.
Quiz
0 / 1
결합된 결과 집합에 중복 행이 없으면 UNION과 UNION ALL은 동일한 결과를 반환한다.
○
✕
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
DB 테이블 구조
실행 결과