본문 바로가기

CS

[DB] SQL - Join 의 종류

JOIN 이란?


  • 2개 이상의 테이블을 논리적 관계를 기준으로 데이터를 검색하여 연결

Join이 왜 필요한가?

  • 관계형 데이터베이스 정규화를 수행하면 저장 공간의 효율성과 확장성이 향상되지만 서로 관계있는 데이터가 여러 테이블로 나뉘어져 데이터를 효과적으로 검색하기 위해서는 조인이 필요함

Join의 종류


  • INNER JOIN(내부 조인) : 공통으로 들어가 있는 값을 결과 집합으로 만듦
    • NATURAL JOIN : 두개 스키마의 교집합의 attribute의 값이 같다면 합쳐줌
  • OUTER JOIN(외부 조인) :INNER JOIN 문을 포함하고 한쪽에만 내용이 있더라도 지정한 기준 테이블에 있는 모든 데이터를 가져옴(null 밸류로)
    • LEFT, RIGHT, FULL OUTER JOIN
  • CROSS JOIN(교차 조인) : 한쪽 테이블의 모든행들과 다른쪽 테이블의 모든 행을 조인, 결과 집합은 두 테이블의 개수를 곱한 값만큼 생성(모든 경우의 수)
    • 예를 들어 m행을 가진 테이블과 n행을 가진 테이블이 교차 조인되면 m*n 개의 행을 생성
  • SELF JOIN(셀프 조인) : 하나의 테이블에 같은 데이터가 존재하는데 그 의미가 다르게 존재하는 경우
    • 한 테이블에서 일치하는 값을 찾고자 하는 경우
    • 테이블의 행을 같은 테이블 안에 있는 다른 행과 연관

JOIN의 방식


  • Nested loop Join
  • Hash Join
  • Merge Join
    (추가예정)