SQL: UNION ALL / UNION

보라·2024년 1월 23일
0

Ch. 5 SQL

목록 보기
7/14

Union

: 여러 개의 SQL문을 햡쳐서 하나의 SQL문으로 만들어주는 방법 (주의! 개수가 같아야함)

Union: 중복된 값을 제거하여 알려줌.
Union All: 중복된 값도 모두 보여줌.
SELECT column1, column2, ... FROM tableA
UNION | UNION ALL
SELECT column1, column2, ... FROM tableB;

UNION All 예제:
😉 test1 의 모든 데이터와 test2 모든 데이터를 중복된 값을 포함하여 검색
mysql> select from test1
-> UNION ALL
-> select
from test2;
+------+
| no |
+------+
| 1 |
| 2 |
| 3 |
| 5 |
| 6 |
| 3 |
+------+

예제 2:
성별이 여자인 데이터를 검색하는 쿼리와, 소속사가 YG인 데이터를 검색하는 쿼리를 UNION ALL 로 실행.

mysql> select name, sex, agency from celeb where sex='F'
-> UNION ALL
-> select name, sex, agency from celeb where agency='YG';
+--------+------+-------------------+
| name | sex | agency |
+--------+------+-------------------+
| 아이유 | F | EDAM 엔터테인먼트 |
| 이미주 | F | 울림엔터테이먼트 |
| 이수현 | F | YG |
| 강동원 | M | YG |
| 차승원 | M | YG |
| 이수현 | F | YG |
+--------+------+-------------------+
✨ 이수현이 2 번나옴

Union 예제:
😉 test1 의 모든 데이터와 test2의 모든 데이터를 중복된 값을 제거하여 검색
mysql> select from test1
-> UNION
-> select
from test2;
+------+
| no |
+------+
| 1 |
| 2 |
| 3 |
| 5 |
| 6 |
+------+

예제 2:
성별이 여자인 데이터를 검색하는 쿼리와, 소속사가 YG인 데이터를 검색하는 쿼리를 UNION ALL 로 실행.

mysql> select name, sex, agency from celeb where sex='F'
-> UNION
-> select name, sex, agency from celeb where agency='YG';
+--------+------+-------------------+
| name | sex | agency |
+--------+------+-------------------+
| 아이유 | F | EDAM 엔터테인먼트 |
| 이미주 | F | 울림엔터테이먼트 |
| 이수현 | F | YG |
| 강동원 | M | YG |
| 차승원 | M | YG |
+--------+------+-------------------+
✨ 이수현이 1 번나옴

예제 3:
성이 이씨인 데이터를 검색하는 쿼리와, 1970년대생을 검색하는 쿼리를 중복을 포함하여 (union all) 합쳐서 실행.
mysql> select name, birthday from celeb where name like '이%'
-> union all
-> select name, birthday from celeb where birthday between 19700101 and 19791231;
+--------+------------+
| name | birthday |
+--------+------------+
| 이미주 | 1994-09-23 |
| 이수현 | 1999-05-04 |
| 유재석 | 1972-08-14 |
| 차승원 | 1970-06-07 |
+--------+------------+

profile
데이터 분석 취준생

0개의 댓글