이 글에서는 Database에서 공통적으로 자주 사용하는 연산인 UNIONUNION ALL을 정리한다.

UNION은 여러 SELECT 결과를 하나로 합치는 연산이다. 합치는 과정에서 중복 행을 제거한다.
반면 UNION ALL은 중복 행을 제거하지 않고 결과를 그대로 합친다.
중복 제거 작업이 없기 때문에 UNION ALL이 더 빠른 경우가 많다.

UNION과 UNION ALL을 사용하려면 각 SELECT 문의 컬럼 개수가 같아야 하고, 각 컬럼의 의미와 순서도 맞아야 한다.

SELECT order_id, order_date, total_amount FROM orders
UNION
SELECT invoice_id, invoice_date, invoice_total_amount FROM invoices;

🧩 정리

  • UNION은 중복을 제거한다.
  • UNION ALL은 중복을 제거하지 않는다.
  • UNION ALL이 보통 더 빠르다.
  • SELECT 문들의 컬럼 수와 순서가 일치해야 한다.

연결문서

댓글남기기