더북(TheBook)

UNION

UNON은 합집합을 의미한다. 예를 들어, 두 개의 데이터 집합이 있으면 각 집합 원소(SELECT 결과)를 모두 포함한 결과가 반환된다. 예제를 통해 알아 보자.

입력

    CREATE TABLE exp_goods_asia (
           country VARCHAR2(10),
           seq     NUMBER,
           goods   VARCHAR2(80));

    INSERT INTO exp_goods_asia VALUES ('한국', 1, '원유제외 석유류');
    INSERT INTO exp_goods_asia VALUES ('한국', 2, '자동차');
    INSERT INTO exp_goods_asia VALUES ('한국', 3, '전자집적회로');
    INSERT INTO exp_goods_asia VALUES ('한국', 4, '선박');
    INSERT INTO exp_goods_asia VALUES ('한국', 5,  'LCD');
    INSERT INTO exp_goods_asia VALUES ('한국', 6,  '자동차부품');
    INSERT INTO exp_goods_asia VALUES ('한국', 7,  '휴대전화');
    INSERT INTO exp_goods_asia VALUES ('한국', 8,  '환식탄화수소');
    INSERT INTO exp_goods_asia VALUES ('한국', 9,  '무선송신기 디스플레이 부속품');
    INSERT INTO exp_goods_asia VALUES ('한국', 10,  '철 또는 비합금강');

    INSERT INTO exp_goods_asia VALUES ('일본', 1, '자동차');
    INSERT INTO exp_goods_asia VALUES ('일본', 2, '자동차부품');
    INSERT INTO exp_goods_asia VALUES ('일본', 3, '전자집적회로');
    INSERT INTO exp_goods_asia VALUES ('일본', 4, '선박');
    INSERT INTO exp_goods_asia VALUES ('일본', 5, '반도체웨이퍼');
    INSERT INTO exp_goods_asia VALUES ('일본', 6, '화물차');
    INSERT INTO exp_goods_asia VALUES ('일본', 7, '원유제외 석유류');
    INSERT INTO exp_goods_asia VALUES ('일본', 8, '건설기계');
    INSERT INTO exp_goods_asia VALUES ('일본', 9, '다이오드, 트랜지스터');
    INSERT INTO exp_goods_asia VALUES ('일본', 10, '기계류');

exp_goods_asia 테이블을 생성해 한국과 일본의 주요 10대 수출품을 입력했다. 다음 쿼리를 실행해 보자.

입력

    SELECT goods
      FROM exp_goods_asia
     WHERE country = '한국'
     ORDER BY seq;

결과

    GOODS
     ------------------------------------------
    원유제외 석유류
    자동차
    전자집적회로
    선박
    LCD
    자동차부품
    휴대전화
    환식탄화수소
    무선송신기 디스플레이 부속품
    철 또는 비합금강

    10개의 행이 선택됨.

입력

    SELECT goods
      FROM exp_goods_asia
     WHERE country = '일본'
     ORDER BY seq;

결과

    GOODS
    ---------------------------
    자동차
    자동차부품
    전자집적회로
    선박
    반도체웨이퍼
    화물차
    원유제외 석유류
    건설기계
    다이오드, 트랜지스터
    기계류
     
    10개의 행이 선택됨.

위는 한국과 일본의 수출품을 조회한 쿼리다. 그 결과로 각각 하나의 데이터 집합을 반환했다. 국가에 상관없이 모든 수출품을 조회하는데, 단 자동차나 선박과 같이 두 국가가 겹치는 수출품목은 한 번만 조회되도록 하려면 UNION(합집합 개념)을 사용한다.

입력

    SELECT goods
      FROM exp_goods_asia
     WHERE country = '한국'
    UNION
    SELECT goods
      FROM exp_goods_asia
     WHERE country = '일본';

결과

    GOODS
    ----------------------------------------
    LCD
    건설기계
    기계류
    다이오드, 트랜지스터
    무선송신기 디스플레이 부속품
    반도체웨이퍼
    선박
    원유제외 석유류
    자동차
    자동차부품
    전자집적회로
    철 또는 비합금강
    화물차
    환식탄화수소
    휴대전화
     
    15개의 행이 선택됨

exp_goods_asia 테이블에는 한국, 일본별로 수출품이 10개씩 총 20건이 등록되어 있는데, 자동차나 선박 등 겹쳐 있는 5개 품목은 단 한 번만 조회되었다. 즉 합집합 개념이 적용되어 데이터가 추출되었다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.