Union과 Union All
1. Union
- Union은 두 개 이상의 SELECT 문의 결과를 하나의 결과 테이블로 결합하는 SQL 연산자입니다.
- 각 SELECT 문의 결과는 동일한 열 수와 해당 열과 호환되는 데이터 유형을 가져야 합니다.
- Union은 중복된 행을 제거하고 유일한 결과 행만 반환합니다.
- Union은 결과 테이블에서 중복된 행을 찾고 제거하기 위해 결과를 정렬하기 때문에 성능이 더욱 좋지 않을 수 있습니다.
- Union은 다음과 같은 형식으로 작성됩니다:
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;
2. Union All
- Union All은 Union과 비슷하지만 중복된 행을 제거하지 않고 모두 반환합니다.
- Union All은 Union에 비해 더 빠르게 실행될 수 있으며 중복 행을 제거하지 않으므로 결과 테이블에 중복된 행이 포함될 수 있습니다.
- Union All의 사용은 결과가 중복되는 것이 무관하고 단순히 결과를 연결하고자 할 때 유용합니다.
- Union All은 다음과 같은 형식으로 작성됩니다:
SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;
예제
1. Union 예제
SELECT first_name, last_name, age
FROM employees
WHERE age < 30
UNION
SELECT first_name, last_name, age
FROM interns
WHERE age < 30;
위의 예제는 employees
테이블과 interns
테이블에서 나이(age)가 30 미만인 사용자의 이름과 나이를 선택합니다. Union을 사용하여 두 결과를 결합하여 중복된 행을 제거한 후 결과를 반환합니다.
2. Union All 예제
SELECT first_name, last_name, age
FROM employees
WHERE age < 30
UNION ALL
SELECT first_name, last_name, age
FROM interns
WHERE age < 30;
위의 예제는 같은 테이블과 동일한 조건을 사용하지만 Union All을 사용하여 중복된 행을 제거하지 않고 결과를 반환합니다.
댓글