MariaDB SQL

MariaDB Union

ssamhago 2023. 6. 23. 08:30
728x90
320x100

MariaDB Union

 

 

 

MariaDB union 연산자를 사용하여 두 개 이상의 쿼리 결과 집합을 단일 결과 집합으로 결합하는 방법을 알아봅니다.

 

 

 

MariaDB union 연산자 소개

 

 

union 연산자는 둘 이상의 select 문의 결과 집합을 단일 결과 집합으로 결합합니다.

다음은 union 연산자의 구문을 보여줍니다.

select-statement1
union [all | distinct]
select-statement2
union [all | distinct]
...

 

이 구문에서:

  • 먼저 결과 집합을 결합하려는 두 개 이상의 select 문을 지정합니다.
  • 둘째, union 연산자를 사용하여 두 개의 선택 문을 연결합니다.

 

select 문의 select 목록에는 동일한 수의 열이 있어야 합니다. 
또한 첫 번째 Select 문의 해당 열은 두 번째 Select 문의 열과 동일한 데이터 유형을 가져야 합니다.

union 연산자는 첫 번째 select 문의 열 이름을 최종 결과 집합의 열 이름으로 사용합니다.

 

 

all vs. distinct

 

위 쿼리를 평가할 때 MariaDB는 각 select 문을 개별적으로 평가하고 각 결과 집합의 행을 결합합니다.

distinct 옵션은 union 연산자에게 최종 결과 집합에서 중복 행을 제거하도록 지시하고 all 옵션은 중복 행을 유지합니다.

다음 그림은 두 집합의 union  union all 결과를 보여줍니다.

 

union vs union all

 

distinct 또는 all 옵션은 선택 사항입니다. 기본적으로 union 연산자는 all 또는 distinct를 명시적으로 지정하지 않은 경우 all 옵션을 사용합니다.

 

 

union and order by

 

select-statements 에는 order by 절이 있을 수 있습니다. 
그러나 이러한 order by 절은 최종 결과 집합의 행 순서에 영향을 주지 않습니다.

union 연산자가 포함된 쿼리에는 문 끝에 표시되는 전역 order by 절이 있을 수 있습니다.
이 order by 절은 최종 결과 집합의 행 순서를 결정합니다.

 

 

MariaDB union 예제

 

데모를 위해 샘플 데이터베이스의 guest 및 vips 테이블을 사용합니다.

 

 

1) 간단한 MariaDB union 예시

 

다음 문은 union 연산자를 사용하여 guest 및 vips 테이블의 결과 집합을 결합합니다.

select
    vip_id id name, 'vip' as type
from vips
union
select
    guest_id name, 'guest'
from guests;

 

union 예시

 

vips 및 guest 테이블의 ID 및 이름 열 외에도 연락처 유형을 지정하는 type 열도 추가합니다.

 

 

2) MariaDB union distinct 예시

 

다음 예에서는 union 연산자를 사용하여 vips 및 guest 테이블에서 고유한 이름을 반환합니다.

select
    name
from guests
union
select
    name
from vips
order by name;

 

union 예시

 

위의 쿼리는 distinct 옵션을 명시적으로 사용하는 다음 쿼리와 동일합니다.

select
    name
from guests
union distinct
select
    name
from vips
order by name;

 

 

3) MariaDB union all 예제

 

이 예에서는 union all 을 사용하여 중복 항목을 포함하여 vips 및 guest 테이블의 모든 이름을 반환합니다.

select name from guests
union all
select name from vips
order by name;

 

union all

 

 

union vs. join

 

join 은 둘 이상의 테이블 열을 결합하는 반면 union 은 둘 이상의 select 문의 결과 집합 행을 결합합니다.

간단히 말해서 join 은 결과 집합을 가로로 추가하고 union 은 결과 집합을 세로로 추가합니다.




이상으로 MariaDB union 및 union all 연산자를 사용하여 둘 이상의 select 문의 결과 집합을 단일 결과 집합으로 결합하는 방법을 알아봤습니다.



※ 원문출처 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-union/

728x90
반응형

'MariaDB SQL' 카테고리의 다른 글

MariaDB Except  (0) 2023.06.27
MariaDB Intersect  (0) 2023.06.26
MariaDB CTE  (0) 2023.06.21
이벤트 스케줄러 목록조회  (0) 2023.06.20
MariaDB Subqueries  (0) 2023.06.16