여러 개의 SQL 문을 합쳐서 하나의 SQL 문으로 만들어 준다.
(주의 칼럼의 갯수가 같아야 한다.)
UNION 문법
성별이 여자인 데이터를 검색하는 쿼리와 소속사가 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';