Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

forest_moon

[SQL] SQL UNION , UNION ALL 본문

SQL

[SQL] SQL UNION , UNION ALL

rokga 2023. 4. 18. 15:18

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