SQL 실습 union

채병기·2022년 9월 8일
0

UNIO

여러 개의 SQL 문을 합쳐서 하나의 SQL 문으로 만들어 준다.
(주의 칼럼의 갯수가 같아야 한다.)

UNION 문법

  • union : 중복된 값을 제거하여 알려 준다.
  • union all : 중복된 값도 포함하여 모두 보여 준다.

성별이 여자인 데이터를 검색하는 쿼리와 소속사가 YG엔터테이먼트인
데이터를 검색하는 쿼리를 union all로 실행

테이블 만들기
mysql> create table test1
-> (
-> no int
-> );
Query OK, 0 rows affected (0.04 sec)

mysql> create table test2
-> (
-> no int
-> );
Query OK, 0 rows affected (0.02 sec)

desc test1;

테이블에 데이터 넣기

mysql> insert into test1 values(2);
Query OK, 1 row affected (0.01 sec)

mysql> insert into test1 values(3);
Query OK, 1 row affected (0.01 sec)

select * from test1;

test2 테이블에 데이터 넣기
mysql> insert into test2 values(5);
Query OK, 1 row affected (0.01 sec)

mysql> insert into test2 values(6);
Query OK, 1 row affected (0.01 sec)

mysql> insert into test2 values(3);
Query OK, 1 row affected (0.00 sec)

show tables;

select * from test2;

select from test1;

select
from test2;

select * from celeb;

select * from celeb where sex='F';

select name, sex, agency from celeb where sex='F';

select name, sex, agency from celeb where agency='YG엔터테이먼트';

select name, sex, agency from celeb where sex='F'
-> union all
-> select name, sex, agency from celeb where agency='YG엔터테이먼트';

union 실행
mysql> select name, sex, agency from celeb where sex='F'
-> union
-> select name, sex, agency from celeb where agency='YG엔터테이먼트';

desc celeb;

컬럼 이름 변경
alter table celeb
change column brithday bybobo date;

desc celeb;

컬럼 이름 변경
alter table celeb
change column bybobo brithday date;

desc celeb;

직업이 가수인(가수를 포함하는)데이터를 검색하는 쿼리와 직업이 텔런트인(텔렌트를 포함하는)데이터를 검색하는 퀄리를 중복을 제거하여 합쳐서 실행해 준다.

select name, job_title from celeb
where job_title like '%가수%';

select name, job_title from celeb where job_title like '%텔런트%';

select name, job_title from celeb
where job_title like '%가수%'
union
select name, job_title from celeb
where job_title like '%텔런트%';

성이 이씨인 데이터를 검색하는 쿼리와 1970년대생을 검색하는 쿼리를 중복을 포함하여 합쳐서 실행

select name, brithday from celeb
where name like '이%';

select name, brithday from celeb
where brithday between '1970-01-01' and '1979-12-31';

select name, brithday from celeb where name like '이%'
union all
select name, brithday from celeb
where brithday between '1970-01-01' and '1979-12-31';

profile
함께 세상을 만드는 사람들

0개의 댓글