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개 품목은 단 한 번만 조회되었다. 즉 합집합 개념이 적용되어 데이터가 추출되었다.

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