요약
SQL UNION과 UNION ALL은 여러 개의 SELECT 결과를 하나로 합치는 연산자입니다. 두 문법은 사용 방법이 비슷하지만 중복 데이터 처리 방식에서 큰 차이가 있습니다. SQLD 시험에서도 자주 출제되는 개념이므로 UNION과 UNION ALL의 차이를 정확히 이해하는 것이 중요합니다.
SQL UNION이란?
SQL UNION은 두 개 이상의 SELECT 결과를 하나의 결과 집합으로 합치는 연산자입니다.
예를 들어 서로 다른 테이블에 저장된 고객 정보를 하나로 조회하거나 여러 조건으로 조회한 결과를 하나의 결과로 합칠 때 사용합니다.
기본 문법은 다음과 같습니다.
SELECT 컬럼명
FROM 테이블1
UNION
SELECT 컬럼명
FROM 테이블2;
SQL UNION은 결과를 합친 후 중복 데이터를 자동으로 제거합니다.
이 특징 때문에 SQLD 시험에서도 자주 등장합니다. 더 많은 정보를 확인하고 SQL 집합 연산자를 학습해보세요.
SQL UNION 사용 예제
다음과 같은 데이터가 있다고 가정해보겠습니다.
TBL1
| 번호 |
|---|
| 1 |
| 2 |
TBL2
| 번호 |
|---|
| 2 |
| 3 |
다음 SQL을 실행합니다.
SELECT 번호
FROM TBL1
UNION
SELECT 번호
FROM TBL2;
실행 결과
| 번호 |
|---|
| 1 |
| 2 |
| 3 |
중복된 값인 2는 한 번만 조회됩니다.
이처럼 SQL UNION은 중복 제거 기능을 가지고 있습니다. 더 많은 정보를 확인하고 SQL UNION 특징을 이해해보세요.
SQL UNION ALL이란?
SQL UNION ALL은 여러 SELECT 결과를 합치는 점에서는 UNION과 동일합니다.
하지만 가장 큰 차이는 중복 데이터를 제거하지 않는다는 것입니다.
기본 문법은 다음과 같습니다.
SELECT 컬럼명
FROM 테이블1
UNION ALL
SELECT 컬럼명
FROM 테이블2;
SQL UNION ALL은 조회 결과를 그대로 연결합니다.
중복 데이터가 있어도 모두 출력됩니다. 더 많은 정보를 확인하고 SQL UNION ALL 특징을 알아보세요.
SQL UNION ALL 사용 예제
앞서 사용한 동일한 데이터를 활용해보겠습니다.
TBL1
| 번호 |
|---|
| 1 |
| 2 |
TBL2
| 번호 |
|---|
| 2 |
| 3 |
다음 SQL을 실행합니다.
SELECT 번호
FROM TBL1
UNION ALL
SELECT 번호
FROM TBL2;
실행 결과
| 번호 |
|---|
| 1 |
| 2 |
| 2 |
| 3 |
중복된 값인 2가 그대로 출력됩니다.
SQL UNION ALL은 중복 제거 작업이 없기 때문에 처리 속도가 빠릅니다. 더 많은 정보를 확인하고 SQL 성능 최적화 방법도 알아보세요.
SQL UNION과 UNION ALL 차이점
SQLD 시험에서 가장 자주 출제되는 부분입니다.
| 구분 | UNION | UNION ALL |
|---|---|---|
| 결과 합치기 | 가능 | 가능 |
| 중복 제거 | O | X |
| 정렬 작업 | 발생 | 없음 |
| 성능 | 상대적으로 느림 | 상대적으로 빠름 |
| SQLD 출제 빈도 | 매우 높음 | 매우 높음 |
많은 SQLD 문제에서 UNION과 UNION ALL 결과 건수를 계산하는 문제가 출제됩니다.
따라서 중복 제거 여부를 정확히 이해하는 것이 중요합니다. 더 많은 정보를 확인하고 SQLD 핵심 개념을 정리해보세요.
SQLD 시험에서 자주 나오는 UNION 문제
다음 데이터를 살펴보겠습니다.
TBL_A
| 번호 |
|---|
| 1 |
| 1 |
| 2 |
TBL_B
| 번호 |
|---|
| 2 |
| 3 |
다음 SQL을 실행합니다.
SELECT 번호
FROM TBL_A
UNION
SELECT 번호
FROM TBL_B;
결과
1
2
3
총 3건
반면
SELECT 번호
FROM TBL_A
UNION ALL
SELECT 번호
FROM TBL_B;
결과
1
1
2
2
3
총 5건
실제 SQLD 시험에서는 이런 형태의 문제를 매우 자주 볼 수 있습니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.
UNION 사용 조건
SQL UNION과 UNION ALL을 사용하려면 몇 가지 조건이 있습니다.
컬럼 개수가 동일해야 함
가능한 예시
SELECT EMPNO, ENAME
FROM EMP
UNION
SELECT EMPNO, ENAME
FROM TEMP_EMP;
불가능한 예시
SELECT EMPNO
FROM EMP
UNION
SELECT EMPNO, ENAME
FROM TEMP_EMP;
컬럼 개수가 다르면 오류가 발생합니다.
더 많은 정보를 확인하고 SQL UNION 사용 규칙을 익혀보세요.
데이터 타입이 호환되어야 함
예를 들어 숫자 컬럼과 문자 컬럼을 무조건 합칠 수는 없습니다.
데이터 타입이 호환되어야 SQL UNION이 정상적으로 실행됩니다.
SQLD 시험에서도 종종 출제되는 개념입니다. 더 많은 정보를 확인하고 데이터 타입 개념도 함께 학습해보세요.
ORDER BY는 어디에 작성할까?
초보자가 자주 헷갈리는 부분입니다.
다음과 같이 마지막에 한 번만 작성해야 합니다.
SELECT 번호
FROM TBL1
UNION
SELECT 번호
FROM TBL2
ORDER BY 번호;
잘못된 예시
SELECT 번호
FROM TBL1
ORDER BY 번호
UNION
SELECT 번호
FROM TBL2;
ORDER BY는 전체 결과에 대해 마지막에 적용됩니다.
더 많은 정보를 확인하고 SQL 문장 작성 순서를 익혀보세요.
실무에서 UNION과 UNION ALL은 언제 사용할까?
UNION 사용 사례
- 중복 없는 고객 목록 조회
- 중복 없는 상품 목록 조회
- 중복 없는 사용자 정보 조회
UNION ALL 사용 사례
- 로그 데이터 통합
- 매출 데이터 통합
- 대용량 데이터 분석
실무에서는 성능 때문에 SQL UNION ALL을 선호하는 경우가 많습니다.
정말 중복 제거가 필요할 때만 SQL UNION을 사용하는 것이 일반적입니다. 더 많은 정보를 확인하고 SQL 성능 최적화 방법을 알아보세요.
SQLD 시험에서 UNION이 중요한 이유
SQLD 시험에서는 SQL UNION과 SQL UNION ALL 관련 문제가 꾸준히 출제됩니다.
특히 다음 내용은 반드시 숙지해야 합니다.
| 출제 포인트 | 중요도 |
|---|---|
| UNION 결과 건수 | 매우 높음 |
| UNION ALL 결과 건수 | 매우 높음 |
| 중복 제거 여부 | 매우 높음 |
| ORDER BY 위치 | 높음 |
| 컬럼 개수 규칙 | 높음 |
UNION 문제는 SQLD에서 난도가 높지 않지만 실수하기 쉬운 유형입니다.
더 많은 정보를 확인하고 SQLD 핵심 문법을 정리해보세요.
자주 묻는 질문(FAQ)
UNION과 UNION ALL 중 무엇이 더 빠른가요?
일반적으로 SQL UNION ALL이 더 빠릅니다. 중복 제거 작업이 없기 때문입니다. 더 많은 정보를 확인하고 SQL 성능 최적화 개념을 학습해보세요.
SQLD 시험에서 UNION 문제가 많이 나오나요?
네. SQLD 시험에서 꾸준히 출제되는 핵심 문법 중 하나입니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.
UNION 사용 시 컬럼명이 달라도 되나요?
컬럼명은 달라도 되지만 컬럼 개수와 데이터 타입은 호환되어야 합니다. 더 많은 정보를 확인하고 SQL UNION 사용 규칙을 이해해보세요.
마무리
SQL UNION과 SQL UNION ALL은 여러 SELECT 결과를 하나로 합치는 대표적인 집합 연산자입니다. SQL UNION은 중복을 제거하고 SQL UNION ALL은 중복을 유지한다는 차이를 반드시 기억해야 합니다. SQLD 시험에서도 결과 건수를 계산하는 문제가 자주 출제되므로 직접 예제를 실행하며 차이를 확인해보는 것을 추천합니다. 더 많은 정보를 확인하고 다음 단계인 SQL EXISTS와 IN 차이도 함께 학습해보세요.
