SQL (5) : UNION, JOIN

Jio.B·2023년 7월 11일
0

UNION = 수직결합

  • 여러 개의 SQL문을 합쳐서 하나의 SQL문으로 만들어주는 방법
    (!! 주의 !! 칼럼의 개수가 같아야함 - 칼럼의 종류는 상관없음)

- UNION

: 중복된 값을 제거하여 알려준다

- UNION ALL

: 중복된 값도 모두 보여준다

[기본 문법]

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

( 예제2 : union ) 성별이 여자인 데이터를 검색하는 쿼리와 소속사가 YG엔터테인먼트인 데이터를 검색하는 쿼리를 union으로 실행

( 예제3 ) 가수가 직업인 연예인의 이름, 직업을 검색하는 쿼리와 1980년대에 태어난 연예인의 이름, 생년월일, 나이를 검색하는 쿼리를 UNION으로 실행 또는 ... where birthday like '198_%' ;

JOIN = 수평결합

  • 두 개 이상의 테이블을 결합하는 것

- inner join

[문법]

  • 여기에서 tableA = 합칠 때 기준이 되는 테이블
  • ON으로 두 테이블을 결합할 때 기준이 되는 컬럼명 각각 입력
    [예제] snl_show에 호스트로 출연한 celeb을 기준으로 celeb 테이블과 snl_show 테이블을 inner join하기
    (단, 두 테이블에 같은 칼럼이 존재할 경우, 테이블명.칼럼명으로 구분할 것)

- left join

[문법]
[예제] snl_show에 호스트로 출연한 celeb을 기준으로 celeb 테이블과 snl_show 테이블을 left join

- right join

[문법]
[예제] snl_show에 호스트로 출연한 celeb을 기준으로 celeb 테이블과 snl_show 테이블을 right join

- full outer join

[문법]

  • (= 합집합)
  • LEFT JOIN UNION RIGHT JOIN
    [예제] snl_show에 호스트로 출연한 celeb을 기존으로 celeb 테이블과 snl_show 테이블을 full outer join

    MySQL에서는 지원하지 않는 full outer join의 기능을 대체할 문법

    • union을 이용하여 병합시 중복값 제거
      = ( Left join ) union ( Right join )

      [예제 실행 결과]

- self join

  • 문법은 다르지만 기능상 inner join과 같은 결과값을 가져옴

[문법]
[예제 1] snl_show에 호스트로 출연한 celeb을 기준으로 celeb 테이블과 snl_show 테이블을 self join

  • [예제 1] self join의 기준점(조건문)
    ---> celeb 테이블의 name 값 = snl_show 테이블의 host 값

[예제 2] celeb 테이블의 연예인 중, snl_show에 host로 출연했고 소속사가 안테나인 사람의 이름과 직업을 검색

[예제 3] 다음 조건을 모두 충족하는 결과를 제시하기

1) celeb 테이블의 연예인 중에서,
2) snl_show에 host로 출연했고,
3) 영화배우는 아니면서 YG엔터테인먼트 소속이거나
4) 40세 이상이면서 YG엔터테인먼트 소속이 아닌 연예인의 이름, 나이, 직업, 소속사, 시즌, 에피소드 정보를 탐색

[예제 4] snl_show에 출연한 연예인의 snl_show 아이디, 시즌, 에피소드, 이름, 직업 정보를 검색

[예제 5] 다음 조건을 모두 충족하는 결과를 제시하기

1) snl_show에 출연한 celeb 중에서
2) 에피소드 7, 9, 10 중에 출연했거나
3) 소속사가 YG로 시작하고 뒤에 6글자로 끝나는 사람 중에서
4)작년 9월 15일 이후에 출였했던 사람을 검색
[주의] ( ) 위치 신경쓰기!

[문제 2] snl_show에 출연한 celeb 중, 2020년 9월 15일 이후에 출연했거나 소속사 이름이 '엔터테이먼트'로 끝나지 않으면서 영화배우나 개그맨이 아닌 연예인의 celeb 아이디, 이름, 직업, 소속사 검색

0개의 댓글