티스토리 뷰

반응형
일상에서 주로 union all를 많이 사용해서 자주 union과 union all의 차이를 잊곤 합니다.
합집합을 만들고자 할때 사용하는데요.
A와 B 집합에서 합집합을 구하고자 할때
unoin은 A에도 있고 B에도 있으면 하나로 합치고 즉 distinct 기능이 있는 것이고
union all은 동일한것이 있어도 각각 인식하여 하나가 아닌 2개로 집합을 만들어 줍니다.
또한가지 큰 차이점이 있는데 그것은 정렬을 하느냐 안하는냐 입니다.
상식적으로 생각해 보아도 union은 중복된 것을 하나로 합치므로 정렬히 되어야 합치기
쉽겠지요. 그래서 union을 사용하면 내부적으로 정렬작업이 일어 납니다.
반면에 union all은 중복된 데이터를 합치지 않으므로 바로 결과 집합에 추가하면 되므로
정렬이 일어나지 않구요.
다시정리를 하자면 구하고자 하는 합집합의 성격에 따라 중복된것을 합치느냐 안하느냐
구별해서 union과 union all를 선택하면 되겠습니다.
알면 쉬우나 소홀히 하면 굉장히 햇갈리기 쉽더군요.

   union union all 
 중복허용  X   O 
 내부정렬  O   X 
반응형