select name, sex, agency from celeb where sex='F'
union all
select name, sex, agency from celeb where agency='YG엔터테이먼트';
select name, sex, agency from celeb where sex='F'
union
select name, sex, agency from celeb where agency='YG엔터테이먼트';
1) INNER JOIN: 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인방식
select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb
inner join snl_show
on celeb.name = snl_show.host;
2) LEFT JOIN: 두개의 테이블에서 공통영역을 포함해 왼쪽 테이블의 다른 데이터를 포함하는 조인방식
select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb
left join snl_show
on celeb.name = snl_show.host;
3) RIGHT JOIN: 두개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인방식
select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb
right join snl_show
on celeb.name = snl_show.host;
4) FULL OUTER JOIN: 두개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른영역을 모두 포함하는 조인방식
select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb
FULL OUTER JOIN snl_show
on celeb.name = snl_show.host;
select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb
left join snl_show
on celeb.name = snl_show.host
UNION
select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb
right join snl_show
on celeb.name = snl_show.host
5) SELF JOIN
예제 1) celeb 테이블의 연예인 중, snl_show 에 host 로 출연했고 소속사가 안테나인 사람의 이름과 직업을 검색
select celeb.name, celeb.job_title
from celeb, snl_show
where celeb.name = snl_show.host AND celeb.agency= '안테나';
예제 2)
celeb 테이블의 연예인 중,
snl_show 에 host 로 출연했고,
영화배우는 아니면서 YG 엔터테이먼트 소속이거나 / 40세 이상이면서 YG 엔터테이먼트 소속이 아닌 / 연예인의 이름과 나이, 직업, 소속사, 시즌, 에피소드 정보를 검색
SELECT celeb.name, celeb.age, celeb.job_title, celeb.agency,
snl_show.season, snl_show.episode
FROM celeb, snl_show
WHERE celeb.name = snl_show.host
AND ((NOT job_title LIKE '%영화배우%' AND agency = 'YG엔터테이먼트')
OR (age >= 40 AND agnecy != 'YG엔터테이먼트'));
예제 3)
snl_show 에 출연한 celeb 중, /에피소드 7, 9, 10 중에 출연했거나
소속사가 YG로 시작하고 / 뒤에 6글자로 끝나는 사람 중 작년 9월 15일 이후에 출연했던 / 사람을 검색
SELECT name, season, episode, broadcast_date, agency
FROM celeb, snl_show
WHERE name = host
AND (episode IN (7,9,10) OR agency like 'YG______')
AND broadcast_date > '2020-09-15';