UNION

JERRY·2025년 2월 28일

SQL

목록 보기
8/18
post-thumbnail

1. 실습환경 만들기

  • 실습할 데이터베이스로 이동 : zerobase 사용(이동)
USE zerobase;

  • 기존 테스트용 데이터 확인
SELECT *
FROM celeb;

  • 테스트용 테이블 생성
CREATE TABLE test1
(no int);
CREATE TABLE test2
(no int);

  • 테스트 데이터 추가
INSERT INTO test1 VALUES (1);
INSERT INTO test1 VALUES (2);
INSERT INTO test1 VALUES (3);

INSERT INTO test2 VALUES (5);
INSERT INTO test2 VALUES (6);
INSERT INTO test2 VALUES (3);

  • 데이터 확인
SELECT *
FROM test1;

SELECT *
FROM test2;


2. UNION

  • 여러 개의 SQL문을 합쳐서 하나의 SQL 문으로 만들어주는 방법 (주의. 칼럼의 개수가 같아야함)

  • UNION 문법
    - UNION : 중복된 값을 제거하여 알려준다.
    - UNION ALL : 중복된 값도 모두 보여준다.

SELECT column1, column2, ...
FROM tableA
UNION | UNION ALL
SELECT column1, column2, ...
FROM tableB;
  • UNION 예제1-1 (UNION ALL): test1 의 모든 데이터와 test2 의 모든 데이터를 중복된 값을 포함하여 검색
SELECT * FROM test1
UNION ALL
SELECT * FROM test2;

  • UNION 예제1-2 (UNION): test1 의 모든 데이터와 test2 의 모든 데이터를 중복된 값을 제거하여 검색
SELECT * FROM test1
UNION 
SELECT * FROM test2;

  • UNION 예제2-1 (UNION ALL): 성별이 여자인 데이터를 검색하는 쿼리와 소속사가 YG엔터테이먼트인 데이터를 검색하는 쿼리를 UNION ALL 로 실행
SELECT name, sex, agency 
FROM celeb 
WHERE sex='F'
UNION ALL
SELECT name, sex, agency 
FROM celeb 
WHERE agency='YG엔터테이먼트';

  • UNION 예제2-2 (UNION): 성별이 여자인 데이터를 검색하는 쿼리와 소속사가 YG엔터테이먼트인 데이터를 검색하는 쿼리를 UNION 으로 실행
SELECT name, sex, agency 
FROM celeb 
WHERE sex='F'
UNION
SELECT name, sex, agency 
FROM celeb 
WHERE agency='YG엔터테이먼트';

  • UNION 예제3 : 가수가 직업인 연예인의 이름, 직업을 검색하는 쿼리와,
    1980년대에 태어난 연예인의 이름, 생년월일, 나이를 검색하는 쿼리를 UNION으로 실행
SELECT name, job_title
FROM celeb 
WHERE job_title LIKE '%가수%'
UNION
SELECT name, birthday, age 
FROM celeb 
WHERE age BETWEEN '1980-01-01' AND '1989-12-31';

0개의 댓글