반응형
UNION 이란
UNION은 Oracle SQL에서 두 개 이상의 SELECT 쿼리의 결과를 결합하는 데 사용됩니다. 각 쿼리는 동일한 열 수와 데이터 형식을 가져야 하며, UNION을 사용하면 두 쿼리의 결과를 합쳐서 하나의 결과 집합으로 반환합니다. UNION은 중복된 행을 자동으로 제거합니다. 만약 중복을 허용하고 싶다면, UNION ALL을 사용해야 합니다.
기본 구문
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
주요 특징
- 열 개수 및 데이터 유형 일치: 각 SELECT 쿼리에서 반환하는 열의 수와 데이터 유형이 동일해야 합니다.
- 중복 제거: UNION은 중복된 행을 제거합니다.
- 순서 지정: ORDER BY는 마지막 쿼리에서만 사용할 수 있으며, 결합된 전체 결과 집합에 적용됩니다.
예시
1. 중복 제거 UNION
SELECT first_name, last_name
FROM employees
WHERE department_id = 10
UNION
SELECT first_name, last_name
FROM employees
WHERE department_id = 20;
2. 중복 허용 UNION ALL
SELECT first_name, last_name
FROM employees
WHERE department_id = 10
UNION ALL
SELECT first_name, last_name
FROM employees
WHERE department_id = 20;
3. ORDER BY 사용
SELECT first_name, last_name
FROM employees
WHERE department_id = 10
UNION
SELECT first_name, last_name
FROM employees
WHERE department_id = 20
ORDER BY last_name;
UNION vs UNION ALL 차이
UNION: 중복을 제거하고 결합된 결과를 반환합니다. 성능이 UNION ALL보다 느릴 수 있습니다.
UNION ALL: 중복을 허용하여 결합된 결과를 반환합니다. 중복 제거 작업이 없으므로 더 빠르게 처리될 수 있습니다.
결론
- UNION은 여러 SELECT 쿼리의 결과를 하나로 결합하고 중복된 데이터를 제거하는 데 사용됩니다.
- 중복된 행을 포함하고 싶다면 UNION ALL을 사용합니다.
- 각 쿼리는 동일한 열 수와 데이터 유형을 반환해야 합니다.
반응형