Skip to content

Latest commit

 

History

History
201 lines (127 loc) · 6.8 KB

6. 조인의 종류.md

File metadata and controls

201 lines (127 loc) · 6.8 KB

4.6 조인의 종류

개요

각 조인의 개념과 쿼리를 알아봅니다.

목차


조인(Join)

  • 개념

    • 조인이란 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 말한다.
  • DB 종류별 명령어

    • MySQL - join, MongoDB - lookup
    • 참고 사항: MongoDB에서는 되도록이면 lookup을 사용하지 말아야 한다. 해당 연산은 관계형 데이터베이스보다 성능이 떨어진다고 여러 벤치마크 테스트에서 알려져 있다. 따라서 여러 테이블을 조인하는 작업이 많을 경우 MongoDB보다는 관계형 데이터베이스를 사용해야 한다.
  • 조인의 종류

    조인의 종류
    • 내부 조인(inner join) : 왼쪽 테이블과 오른쪽 테이블의 두 행이 일치하는 행이 있는 부분만 표기
    • 왼쪽 조인(left outer join) : 왼쪽 테이블의 모든 행이 결과 테이블에 표기
    • 오른쪽 조인(right outer join) : 오른쪽 테이블의 모든 행이 결과 테이블에 표기
    • 합집합 조인(full outer join) : 두 개의 테이블을 기반으로 조인 조건에 만족하지 않은 행까지 모두 표기
  • 이후 예제에 사용되는 테이블

    조인 예제

내부 조인

내부 조인
  • 개념

    • 두 테이블에서 조인 조건을 만족하는 레코드(튜플)로 결과 테이블을 만드는 방식이다.
    • 두 테이블 모두 데이터가 있어야만 결과를 얻을 수 있다.
    • 디폴트 조인 방식으로, 가장 많이 사용되는 조인 방식이다.
    • 조인 조건에서 null 값을 가지는 레코드는 결과 테이블에 포함되지 못한다.
  • SQL 쿼리

    • 기본

      SELECT * FROM TableA A
      INNER JOIN TableB B ON
      A.key = B.key
    • 예제

      SELECT p.상품ID, p.상품명, o.상품ID, o.고객ID, o.주문일자, o.주문수량
      FROM 상품 p
      JOIN 고객주문상품 o
      ON p.상품ID = o.상품ID;
    • 예제 결과

      조인 예제

외부 조인

외부 조인
  • 개념

    • 두 테이블에서 조인 조건을 만족하지 않는 레코드(튜플)들도 결과 테이블에 포함하는 조인 방식이다.
    • 한쪽 테이블에만 데이터가 있어도 결과를 얻을 수 있다.

왼쪽 조인

  • 개념

    • 조인문 왼쪽 테이블의 모든 결과를 가져와서 오른쪽 테이블의 데이터와 매칭하고, 매칭되는 데이터가 없는 경우 null로 표시한다.
  • SQL 쿼리

    • 기본

      SELECT * FROM TableA A
      LEFT JOIN TableB B ON
      A.key = B.key
    • 예제

      SELECT p.상품ID, p.상품명, o.상품ID, o.고객ID, o.주문일자, o.주문수량
      FROM 상품 p
      LEFT OUTER JOIN 고객주문상품 o
      ON p.상품ID = o.상품ID;
    • 예제 결과

      조인 예제

오른쪽 조인

  • 개념

    • 조인문 오른쪽 테이블의 모든 결과를 가져와서 왼쪽 테이블의 데이터와 매칭하고, 매칭되는 데이터가 없는 경우 null로 표시한다.
  • SQL 쿼리

    • 기본

      SELECT * FROM TableA A
      RIGHT JOIN TableB B ON
      A.key = B.key
      • 예제
      SELECT p.상품ID, p.상품명, o.상품ID, o.고객ID, o.주문일자, o.주문수량
      FROM 상품 p
      RIGHT OUTER JOIN 고객주문상품 o
      ON p.상품ID = o.상품ID;
    • 예제 결과

      조인 예제

합집합 조인

  • 개념

    • 양쪽 모두 조인 조건에 부합하지 않는 레드코들까지도 결과 테이블에 포함한다.
    • 서로 일치하는 항목이 없으면 누락된 쪽에 null 값이 포함된다.
  • 비고

    • MySQL에서는 합집합 조인을 지원하지 않는다. (PostgreSQL에서 지원)
  • SQL 쿼리

    • 기본

      SELECT * FROM TableA A
      FULL OUTER JOIN TableB B ON
      A.key = B.key
    • 예제

      SELECT p.상품ID, p.상품명, o.상품ID, o.고객ID, o.주문일자, o.주문수량
      FROM 상품 p
      FULL OUTER JOIN 고객주문상품 o
      ON p.상품ID = o.상품ID;
    • 예제 결과

      조인 예제

참고 자료