반응형
UNION과 UNION ALL 차이
UNION과 UNION ALL은 합집합을 표현할 때 사용한다.
-- UNION 사용
SELECT 10 data FROM tb
UNION
SELECT 10 data FROM tb
UNION
SELECT 20 data FROM tb
-- UNION ALL 사용
SELECT 10 data FROM tb
UNION ALL
SELECT 10 data FROM tb
UNION ALL
SELECT 20 data FROM tb
위의 경우에서 결과 값은 다르게 나온다.
UNION을 사용한 경우에는 10과 20 2개만 출력되지만 UNION ALL을 사용하면 10, 10, 20으로 총 3개의 데이터가 출력된다.
UNION을 사용하면 중복을 제거해준다.
중복을 제거해야하거나 제거하지 않아야 하거나 할 때 각 상황에 맞추어 연산자를 써야 한다.
그러나 중복 제거의 유무와 상관이 없을 때는 UNION ALL 연산자를 사용하는 게 좋다.
UNION 사용 시 중복을 제거하기 위하여 데이터를 모두 검사하기 때문에 속도가 느리다.
따라서 UNION 연산자는 생각보다 많이 사용하지는 않는다.
반응형