[7주차] SQL (2)

이철민·2023년 3월 13일

[ UNION ]

  • 실습 환경 생성: use zerobase;
  • UNION 문법
  • UNION
  • UNION ALL

[ JOIN ]

  • 실습 환경 생성: use zerobase;
  • 새로운 테이블 생성 (snl_show)
  • JOIN 기본
  • INNER JOIN : 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인방식
문제: snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 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;
  • 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;
  • RIGHT JOIN: 두개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인방식
문제: snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 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;
  • FULL OUTER JOIN: 두개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른영역을 모두 포함하는 조인방식
문제: snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 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;

  • SELF JOIN
문제: snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 SELF JOIN

select celeb.id, celeb.name, snl_show.id, snl_show.host
from celeb, snl_show
where celeb.name = snl_show.host
  • 예제 1)
  • 예제 2)

[ CONCAT ]

  • 실습환경 만들기: use zerobase;
  • concat: 여러 문자열을 하나로 합치거나 연결

[ ALIAS ]

  • Alias: 칼럼이나 테이블 이름에 별칭 생성
  • 예제1) name 과 job_title 을 합쳐서 profile 이라는 별칭을 만들어서 검색
  • 예제2) snl_korea 에 출연한 celeb 을 기준으로 두 테이블을 조인하여 다음과 같이 각 데이터의 별칭을 사용하여 검색
    • 시즌, 에피소드, 방송일을 합쳐서 ‘방송정보’
    • 이름, 직업을 합쳐서 ‘출연자정보’

[ DISTINCT ]

  • Distinct : 검색한 결과의 중복 제거
문제: 가수 중에서, 성별과 직업별 종류를 검색 - 중복 제외

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

[ LIMIT ]

  • Limit: 검색 결과를 정렬된 순으로 주어진 숫자만큼만 조회
문제: 나이가 가장 적은 연예인 4명을 검색

select * from celeb order by age limit 4;
profile
늘 온 마음을 다해 :)

0개의 댓글