SQL : Union & Union ALL

Jiwon Kim
|2023. 7. 20. 01:10

 


UNION

UNION 절은 JOIN 절이 두 개의 데이터 셋을 가로로 연결해준것과 달리

아래로 연결되도록 해준다. 

따라서, 두 개의 SELECT 문을 작성해서 이어붙일 때 그 사이에 UNION을 쓸 수 있는 것이다. 

 

ID 학과
1 경영학과
2 컴퓨터과학과
ID 학과
2 컴퓨터과학과
3 건축학과
4 국어국문학과

 

 

첫번째 테이블의 모든 결과를 나열하고 + 그 밑에 두번째 테이블의 모든 결과들이 이어진다. 

 

그런데 distinct values들만 남는다. 

 

즉, 위에서 두번째 테이블인 B에 A와 중복되는 행인 (ID = 2)가 있는데, 이러면 

ID = 2인 행은 제외하고 붙여진다. 

 

결과는 다음과 같을 것이다. 

 

ID 학과
1 경영학과
2 컴퓨터과학과
3 건축학과
4 국어국문학과

 

두 개의 SELECT 문 사이에 UNION이 낄려면

두 개의 SELECT 문으로 만들어진 두 개의 테이블의 

(1) 열의 갯수가 같아야 한다. 

(2) 각 열의 data type이 순서대로 일치해야 한다. (예를 들어 윗 테이블이 숫자-문자 였다면 밑 테이블도 숫자-문자)

 


UNION ALL

 

중복 여부와 관계없이 두번째 테이블의 모든 행들을 첫번째 테이블 밑에 연결짓고 싶다면

'UNION ALL'을 사용하면 된다. 

 

'Study > SQL' 카테고리의 다른 글

SQL : Insert  (0) 2023.10.05
SQL : Joins with Comparison Operators  (0) 2023.07.20
SQL : Join - LEFT/RIGHT/OUTER JOIN  (0) 2023.07.20
SQL : JOIN - INNER JOIN  (0) 2023.07.19
SQL : CASE로 pivot하기  (0) 2023.07.19