🏷️ UNION
여러 쿼리문들을 합쳐서 하나의 쿼리문으로 만들어주는 방법입니다. 중복된 값을 제거하고 보여주고, 중복된 값을 제거하는 연산이 추가로 수행되기 때문에 UNION ALL보다 속도가 느립니다.
🏷️ UNION ALL
UNION과 동일하게 여러 쿼리문들을 합쳐서 하나의 쿼리문으로 만들어주는 방법으로 중복된 값을 모두 보여줍니다.
✅ 사용법
SELECT
A_COL AS COL1,
B_COL AS COL2
FROM
TABLE_A
UNION (UNION ALL)
SELECT
C_COL AS COL1,
D_COL AS COL2
FROM
TABLE_B;
✔️ 주의사항
- 컬럼명이 동일해야 하며, 같지 않을 경우 AS를 이용해 컬럼명을 맞춰줘야 합니다.
- 컬럼별로 데이터 타입이 동일해야 합니다.
- 출력할 컬럼의 개수가 동일해야 합니다.
- 출력할 컬럼명을 차례로 적어합니다.
✅ JOIN과 차이점
여러 쿼리문을 결합한다는 의미에서 JOIN과 헷갈릴 수 있으며, 가장 간단하게 보자면 다음과 같습니다.
JOIN : 새로운 열로 결합한다. (수평결합)
UNION : 새로운 행으로 결합한다. (수직결합)
아래와 같은 2개의 테이블이 있을 때,
▪️테이블 1
| COL_NAME1 | COL_NAME2 |
| A | 1 |
| B | 2 |
| C | 3 |
▪️테이블 2
| COL_NAME1 | COL_NAME2 |
| A | NAME1 |
| B | NAME2 |
| C | NAME3 |
| C | NAME4 |
▪️JOIN 결과 테이블
| COL_NAME1 | COL_NAME2 | COL_NAME2_1 |
| A | 1 | NAME1 |
| B | 2 | NAME2 |
| C | 3 | NAME3 |
| C | 3 | NAME4 |
JOIN을 사용하게 되면 위와 같이 새로운 열이 추가되는 결과가 나옵니다.
▪️UNION 결과 테이블
| COL_NAME1 | COL_NAME2 |
| A | 1 |
| B | 2 |
| C | 3 |
| A | NAME1 |
| B | NAME2 |
| C | NAME3 |
| C | NAME4 |
UNION의 경우는 두 테이블의 데이터가 새로운 행으로 추가되어서 순차적으로 데이터가 추가된 것을 볼 수 있습니다.
📖 Reference
'코딩 공부 > DB' 카테고리의 다른 글
| [SQL] WITH (1) | 2025.08.06 |
|---|---|
| [SQL] SET (0) | 2025.08.05 |
| [MySQL] 랭크 함수 (0) | 2025.07.28 |
| [DB] NoSQL (3) | 2024.10.16 |
| [DB] Redis (0) | 2024.10.09 |