데이터 베이스/데이터베이스 기본

Ch04. UNION - UNION

webmaster 2026. 5. 31. 11:42

"UNION"은 여러 개의 결과 집합을 아래로(수직으로) 이어 붙여서 많은 행을 가진 하나의 집합으로 만드는 기술이다.

 

"우리 쇼핑몰은 현재 활동 중인 고객을 "users" 테이블에, 과거에 탈퇴한 고객을"retired_users"라는 별도의 테이블 보관하고 있다. 연말을 맞아 모든 고객(활동+탈퇴)에게 감사 이메일을 보내기 위해, 테이블에 흩어져 있는 이름과 이메일을 합쳐서 하나의 전체 목록을 만들어야 한다."

 

 

retired_users 생성

-- 본 실습을 위한 탈퇴 고객 테이블 생성
DROP TABLE IF EXISTS retired_users;
CREATE TABLE retired_users (
id BIGINT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
retired_date DATE NOT NULL
);

-- 탈퇴 고객 데이터 입력
INSERT INTO retired_users (id, name, email, retired_date) VALUES
(1,'션', 'sean@example.com', '2024-12-31'),
(7,'아이작 뉴턴', 'newton@example.com', '2025-01-10');

 

 

UNION 개념과 사용법

select name, email from users
union
select name, email from retired_users
;

쿼리 결과

  • "UNION" 연산자는 이 두 개의 "SELECT" 문의 결과를 하나로 합쳐준다. 두 "SELECT" 문 사이에 "UNION" 키워드를 넣어주기만 하면 된다.
  • 결과를 자세히 살펴보자. "션"은 "users" 테이블에도 있고 "retired_users" 테이블에도 있었다. 하지만 최종 결과 목록에는 단 한 번만 나타난다.
    • "UNION"은 기본적으로 결과 집합을 합친 , 완전히 중복되는 행은 자동으로 제거하여 고유한 값만 남긴다.

 

UNION 사용의 핵심 규칙

"UNION" 사용할 때는 반드시 지켜야 중요한 규칙이 있다.

  • "UNION"으로 연결되는 모든 "SELECT"문은 컬럼의 개수가 동일해야 한다.
  • 각 "SELECT"문의 같은 위치에 있는 컬럼들은 서로 호환 가능한 데이터 타입이어야 한다.
    • : 숫자 타입은 숫자 타입끼리, 문자 타입은 문자 타입끼리
  • 최종 결과의 컬럼 이름은 번째 "SELECT" 문의 컬럼 이름을 따른다.

 

'데이터 베이스 > 데이터베이스 기본' 카테고리의 다른 글

Ch05. CASE문 - 그룹핑  (0) 2026.06.02
Ch05. CASE문 - CASE문 기본  (0) 2026.06.02
Ch04. UNION - UNION 정렬  (0) 2026.05.31
Ch04. UNION - UNION ALL  (0) 2026.05.31
Ch03. 서브쿼리 - 서브쿼리 VS Join  (0) 2026.05.30