[sql] UNION 연산자를 활용한 데이터베이스 스키마 디자인 방법

데이터베이스를 설계할 때, 여러 테이블의 데이터를 조합하여 일관된 결과를 얻어야 하는 경우가 있습니다. 이때 UNION 연산자를 활용하여 데이터베이스 스키마를 디자인할 수 있습니다.

UNION 연산자 소개

UNION 연산자는 두 개 이상의 SELECT 문의 결과를 하나로 합쳐줍니다. 이때, 각 SELECT 문의 열의 수와 데이터 유형은 일치해야 합니다. 중복된 행은 한 번만 나타나며, 결과는 기본적으로 오름차순으로 정렬됩니다.

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;

데이터베이스 스키마 디자인 예시

가령, 고객 정보와 주문 정보를 하나의 테이블로 결합하고 싶다고 가정해봅시다. 고객 정보와 주문 정보는 서로 다른 테이블에 저장되어 있지만, UNION 연산자를 사용하여 하나의 결과 테이블로 통합할 수 있습니다.

SELECT customer_id, customer_name, NULL AS order_id, NULL AS order_date FROM customers
UNION
SELECT NULL, NULL, order_id, order_date FROM orders;

위의 예시에서, 고객 정보와 주문 정보를 UNION하여 동일한 결과 테이블에 결합하였습니다.

UNION ALL 연산자의 활용

때로는 중복된 행을 필터링하지 않고 모두 결과로 얻고 싶을 수 있습니다. 이때는 UNION ALL 연산자를 사용합니다.

SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;

요약

UNION 연산자를 활용하여 데이터베이스 스키마를 디자인할 수 있으며, 다양한 테이블의 데이터를 효과적으로 조합할 수 있습니다. 필요에 따라 UNION ALL 연산자를 사용하여 중복된 데이터를 필터링하지 않고 모두 합칠 수 있습니다.

이상으로 데이터베이스 스키마 디자인을 위한 UNION 연산자의 활용 방법에 대해 알아보았습니다.

참고 문헌