[SQL/DB] JOIN

ack·2021년 6월 15일
0

SQL/DB

목록 보기
2/8
post-thumbnail

ch03 JOIN과 집계데이터 - JOIN

01. JOIN

  • 2개 이상의 테이블에 있는 정보 중 사용자가 필요한 집합에 맞게 가상의 테이블처럼 만들어서 결과를 보여주는 것
종류설명
INNER 특정 컬럼을 기준으로 정확히 매칭된 집합을 출력
OUTER 조인 특정 컬럼을 기준으로 매칭된 집합을 출력하지만 한쪽의 집합은 모두 출력하고 다른 한쪽의 집합은 매칭되는 컬럼의 값 만 을 출력
SELF 조인 동일한 테이블 끼리의 특정 컬럼을 기준으로 매칭되는 집합을 출력
FULL OUTER INNER, LEFT OUTER, RIGHT OUTER JOIN 집합을 모두 출력
CROSS Cartesian Product이라고도 하며 JOIN되는 두 테이블에서 곱집합을 반환
NATURAL조인 특정 테이블의 같은 이름을 가진 컬럼 간의 JOIN집합을 출력

02. INNER JOIN

  • 특정 컬럼의 기준으로 정확히 매칭된 집합을 출력
  • 교집합

03. OUTER JOIN

  • 특정 컬럼을 기준으로 매칭된 집합을 출력하지만 한쪽의 집합은 모두 출력하고 다른 한쪽의 집합은 매칭되는 컬럼의 값만을 출력
  • LEFT OUTER JOIN / RIGHT OUTER JOIN
  • LEFT ONLY / RIGHT ONLY - 차집합

04. SELF JOIN

  • 같은 테이블끼리 특정 컬럼을 기준으로 매칭 되는 컬럼을 출력하는 조인
  • 같은 테이블의 데이터를 가각의 집합으로 분류한 후 조인
  • SELFJOIN의 부정형
  • FILM테이블을 SELF JOIN하여 상영시간을 동일하면서 서로 다른 영화인 집합을 출력
SELECT F1.title,
	F2.title,
	F1.LENGTH
FROM FILM F1
INNER JOIN FILM F2 ON F1.FILM_ID <> F2.FILM_ID
AND F1.LENGTH = F2.LENGTH;

05. FULL OUTER JOIN

  • INNER, LEFT OUTER, RIGHT OUTER 조인 집합을 모두 출력하는 조인 방식
  • 두 테이블간 출력 가능한 모든 데이터를 포함한 집합을 출력

06. CROSS JOIN

  • 두 개의 테이블의 CATESIAN PRODUCT 연산의 결과를 출력
  • 데이터 복제에 많이 쓰이는 기법

07.NATURAL JOIN

  • 두개의 테이블에서 같은 이름을 가진 컬럼간의 INNER 조인 집합 결과를 출력 → 조인 컬럼을 명시하지 않아도 됨.
  • SQL문 자체가 간소해짐
  • 두개의 테이블에 동일한 컬럼이 두 개이상일 경우 의도했던 결과값을 얻지 못할 수 있음. → 사용을 잘 안함. INNER JOIN을 더 많이 사용
profile
아자 (*•̀ᴗ•́*)و

0개의 댓글