ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MySQL UNION 요약
    공부하기/데이터베이스 2023. 2. 10. 16:21

    UNION :

    1. 여러 select 문에서 둘 이상의 결과를 단일 결과로 결합할 때 사용한다.
    2. 모든 선택 문에 나타나는 컬럼의 수와 순서는 동일해야 한다.
    3. 결합되는 열의 데이터 타입이 동일하거나 호환되어야 한다.
    4. 기본적으로 UNION 연산자는 DISTINCT 연산자를 명시적으로 지정하지 않은 경우에도 중복 행을 제거한다.
    5. UNION ALL을 사용해서 중복 행이 제거되지 않은 결과를 얻을 수 있다.
    6. UNION ALL은 중복을 제거하지 않기 때문에 UNION보다 빠르다.

     

    문법

    SELECT column_list
    UNION [DISTINCT | ALL]
    SELECT column_list
    UNION [DISTINCT | ALL]
    SELECT column_list
    ...

    UNION VS JOIN

    -> JOIN은 결과 집합을 수평으로 결합하고 UNION은 결과 집합을 수직으로 추가한다.

    예제에 사용될 테이블 및 데이터

    DROP TABLE IF EXISTS t1;
    DROP TABLE IF EXISTS t2;
    
    CREATE TABLE t1 (
        id INT PRIMARY KEY
    );
    
    CREATE TABLE t2 (
        id INT PRIMARY KEY
    );
    
    INSERT INTO t1 VALUES (1),(2),(3);
    INSERT INTO t2 VALUES (2),(3),(4);

     

    예제

    1. UNION을 사용해서 두개의 select 쿼리 결과를 결합

    SELECT id
    FROM t1
    UNION
    SELECT id
    FROM t2;

    결과

    중복이 자동으로 제거된 결과

    --> 2,3 데이터가 t1, t2 두 테이블 모두 존재하지만 위 이미지를 보면 중복이 제거된 결과를 볼 수 있다.

     

    다이어그램

     

    2. UNION ALL을 사용해서 두개의 select 쿼리 결과를 결합

    SELECT id
    FROM t1
    UNION ALL
    SELECT id
    FROM t2;

    결과

    중복이 제거되지 않은 결과 출력

     

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

    MySql Database Lock  (0) 2023.02.19
    다양한 데이터베이스 특징  (0) 2023.02.18
    MySQL CTE 요약  (0) 2023.02.10
    MySQL EXISTS 요약  (0) 2023.02.10
    MySQL Subquery 요약  (0) 2023.02.10
Designed by Tistory.