-
MySQL UNION 요약공부하기/데이터베이스 2023. 2. 10. 16:21
UNION :
- 여러 select 문에서 둘 이상의 결과를 단일 결과로 결합할 때 사용한다.
- 모든 선택 문에 나타나는 컬럼의 수와 순서는 동일해야 한다.
- 결합되는 열의 데이터 타입이 동일하거나 호환되어야 한다.
- 기본적으로 UNION 연산자는 DISTINCT 연산자를 명시적으로 지정하지 않은 경우에도 중복 행을 제거한다.
- UNION ALL을 사용해서 중복 행이 제거되지 않은 결과를 얻을 수 있다.
- UNION ALL은 중복을 제거하지 않기 때문에 UNION보다 빠르다.
문법
SELECT column_list UNION [DISTINCT | ALL] SELECT column_list UNION [DISTINCT | ALL] SELECT column_list ...
UNION VS JOIN
-> JOIN은 결과 집합을 수평으로 결합하고 UNION은 결과 집합을 수직으로 추가한다.
예제에 사용될 테이블 및 데이터
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; CREATE TABLE t1 ( id INT PRIMARY KEY ); CREATE TABLE t2 ( id INT PRIMARY KEY ); INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t2 VALUES (2),(3),(4);
예제
1. UNION을 사용해서 두개의 select 쿼리 결과를 결합
SELECT id FROM t1 UNION SELECT id FROM t2;
결과
중복이 자동으로 제거된 결과 --> 2,3 데이터가 t1, t2 두 테이블 모두 존재하지만 위 이미지를 보면 중복이 제거된 결과를 볼 수 있다.
다이어그램
2. UNION ALL을 사용해서 두개의 select 쿼리 결과를 결합
SELECT id FROM t1 UNION ALL SELECT id FROM t2;
결과
중복이 제거되지 않은 결과 출력 '공부하기 > 데이터베이스' 카테고리의 다른 글
MySql Database Lock (0) 2023.02.19 다양한 데이터베이스 특징 (0) 2023.02.18 MySQL CTE 요약 (0) 2023.02.10 MySQL EXISTS 요약 (0) 2023.02.10 MySQL Subquery 요약 (0) 2023.02.10