Notice
Recent Posts
Recent Comments
Link
forest_moon
[SQL] SQL UNION , UNION ALL 본문
UNION
연산자는 두 개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용된다.
UNION은 두개의 SQL 문의 결과를 결합하는데 사용되는 명령이다. 그러고 보면 UNION는 JOIN와 다소 유사하다. 이 두 명령 모두 여러 테이블에서 데이터를 가져올 수 있기 때문이다. 그러나 UNION이 제한되는 것은 두개의 SQL 문에서 만들어진 필드가 동일한 데이터 유형에 사용되어야 한다. 또한 UNION 명령을 사용하는 경우 중복 데이터는 출력되지 않는다(SELECT DISTINCT와 유사).
UNION 의 생성 조건
- UNION 내의 각 SELECT 문은 같은 수의 열을 가져야 한다.
- 열은 유사한 데이터 형식을 가져야 한다.
- 각 SELECT 문의 열은 또한 동일한 순서로 있어야 한다.
UNION ALL
- UNION은 중복된 행을 제거하지만 UNION ALL은 중복된 행을 허용한다
- 중복된 행을 꼭 제거해야하는 경우가 아니라면 보통 UNION ALL을 사용한다
- 실제 환경에서는 UNION을 사용하느 경우는 극히 드물다
UNION, UNION ALL 사용
SELECT temperature
FROM a
UNION // UNION ALL
SELECT temperature
FROM b
UNION, UNION ALL 예시
a
date | temperature |
2000-10-10 | 20 |
2000-10-20 | 21 |
2000-10-21 | 22 |
2000-10-22 | 23 |
2000-11-23 | 24 |
b
day | temperature |
2000-10-10 | 11 |
2000-10-20 | 12 |
2000-10-21 | 13 |
2000-10-22 | 14 |
2000-10-23 | 15 |
날짜(day)만 전부 확인하기
SELECT day
FROM a
UNION
SELECT day
FROM b
***UNION 명령을 사용하는 경우 중복 데이터는 출력되지 않는다
date |
2000-10-10 |
2000-10-20 |
2000-10-21 |
2000-10-22 |
2000-10-23 |
2000-11-23 |
UNION ALL 의 경우에는 중복된 값들도 포함해서 나오기 때문에 a 와 b 의 모든 date 값이 출력된다.
'SQL' 카테고리의 다른 글
[SQL] Window Function 윈도우 함수 (0) | 2023.05.30 |
---|---|
[Oracle] LAG, LEAD 함수 (0) | 2023.05.30 |
[SQL] SQL WITH문 (0) | 2023.04.20 |
[SQL] Query 실행 순서 (0) | 2023.04.02 |
[SQL] NULL 값 처리하기 (0) | 2023.03.09 |