[DBMS]JOIN

Date:     Updated:

카테고리:

태그:

[10] JOIN

10.1. 개념

  • JOIN 이 필요한 이유
    • 필요한 정보(상품명, 유저 정보, 카테고리 정보 등)가 각기 다른 테이블에 분산 저장되어 있을때, 이를 하나의 테이블로 가져와 보기좋게 데이터를 추출하기 위해서임.
  • 서로 다른 테이블을 공통 컬럼을 기준으로 합치는 (결합하는) 테이블 단위 연산.
    • 여러 테이블에 대한 조인 검색
    • 여러 개의 테이블을 연결하여 데이터를 검색하는 것
    • 조인 속성
      • 조인 검색을 위해 테이블을 연결해주는 속성(컬럼)

        SELECT * 
        FROM 테이블1 JOIN 테이블2
        ON 테이블1.컬럼명, 테이블2.컬럼명           (ANSI 표준)
        
        SELECT *
        FROM 테이블1, 테이블2
        WHERE 테이블1.컬럼명 = 테이블2.컬럼명
        
        SELECT * 
        FROM 테이블1 JOIN 테이블2
        ON 테이블1.컬럼명, 테이블2.컬럼명
        JOIN 테이블3
        ON 테이블2.컬럼명, 테이블3.컬럼명           (ANSI 표준)
        
        SELECT *
        FROM 테이블1, 테이블2, 테이블3
        WHERE 테이블1.컬럼명 = 테이블2.컬럼명
        AND 테이블2.컬럼명 = 테이블3.컬럼명
        
        • 조인 시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명으로 사용해서 표시.
        • 연결하려는 테이블간의 조인 속성(클럽)명은 달라도 되지만 도메인은 같아야 함
        • 일반적으로 외래키(FK)를 조인 속성으로 이용함
        • FROM 전에 검색에 필요한 모든 테이블을 나열.

10.2. 종류

  • 조인 시 NULL 값을 허용하지 않는 내부조인(INNER JOIN), 허용하는 외부조인(OUTER JOIN) 으로 구분.
  • INNER JOIN
    • 두 집합 간의 교집합을 리턴하는 조인 연산 방식.
    • 3개의 테이블 조인
    • 조인결과
      • 두개 테이블에 모두 존재하는 행만 남음
      • 조인시 NULL 값을 허용하지 않음.
      • NULL 값을 가진 레코드는 조인 결과에 빠짐
    • 필요상황
      • 두개 테이블에 조인 키가 빠짐없이 있을 때
  • LEFT OUTER JOIN (LEFT , RIGHT)
    • 두 집합에서 LEFT 쪽 집합은 모두 출력하고 RIGHT 쪽 집합은 매칭 되는 것만 출력하는 조인 연산 방식.
  • SELF JOIN
    • 동일한 테이블끼리 조인하는 것
      • EX)조직도
  • FULL OUTER JOIN
    • 왼쪽 테이블 집합, 오른쪽 테이블 집합을 모두 리턴함.
    • INNER JOIN 의 결과 집합 + LEFT OUTER JOIN 의 결과 집합 + RIGHT OUTER JOIN 결과 집합 모두가 출력됨
  • CROSS JOIN
    • 두 개의 집합간의 곱집합을 리턴함.
    • 아무런 조인조건이 없는 조인임.

DBMS 카테고리 내 다른 글 보러가기

댓글 남기기