본문 바로가기
IT/Database

데이터베이스 테이블 합집합, 차집합(UNION, UNION ALL, MINUS, INTERSECT, EXCEPT)

by 성준하이 2023. 6. 25.
반응형

데이터베이스를 사용하면 join이나 서브쿼리를 통해서 테이블을 합치곤 한다.

하지만 이렇게 합치는것은 수평적으로 하여 컬럼이 많아지도록 합치는 것이고,

 

오늘 소개할 UNION, UNION ALL, MINUS는 수직적으로 레코드들이 합쳐지는 것이다.

 

Join에 대해서는 아래 참고 포스팅을 참고 바란다.

 

 

UNION 과 UNION ALL의 차이

 

UNION은 두 개의 테이블을 하나로 만드는 연산이다. 두 개 테이블의 컬럼 수, 컬럼 데이터 형식이 모두 일치해야한다.

UNION 연산은 두 개의 테이블을 하나로 합치면서 중복된 데이터를 제거한다. 그래서 UNION은 정렬을 발생시킨다.

UNION ALL은 중복을 제거하거나 정렬을 유발하지 않는다.

둘 다 먼저 선행된 테이블의 이름을 기준으로 출력이되게 된다.

 

이에 반면에

MINUS

는 선행테이블 - 후행 테이블이다.

두 테이블의 차이를 보기 편하고, MSSQL 에서는 Except 라고 사용을 한다.

 

EXCEPT

MINUS 와 동일하게 차집합을 의미한다.

EXCEPT는 일반적으로 ANSI SQL 표준에서 사용되는 용어이며, MINUS는 Oracle 데이터베이스에서 사용되는 용어이다.

INTERSECT

교집합을 의미한다.


참고 포스팅

https://thenicesj.tistory.com/260

 

Join의 종류

데이터베이스에서 join이라고 하면 다들 inner join이나 left outerjoin 혹은 cross join 등은 많이 들어봤을 것이다. 하지만 이런 조인은 조인의 종류로 나뉜것으고 이 종류들이 데이터베이스에서 수행하

thenicesj.tistory.com

 

반응형

'IT > Database' 카테고리의 다른 글

DB Link 에 대해서(23.07.24)  (11) 2023.07.25
[SQL 쿼리 튜닝] OR -> UNION ALL 변환  (38) 2023.06.26
LAG, LEAD 함수에 대해서  (44) 2023.06.21
upsert 란?  (62) 2023.06.12
CLOB 타입  (28) 2023.05.31

댓글