Join 이란?
관계(Relationship)를 맺는다는 건 식별자를 상속하고, 상속된 속성을 매핑키로 활용하여 데이터를 결합해 볼 수 있다는 의미다. 이를 SQL에서는 Join이라고 한다. - SQL 전문가 가이드
Join의 종류
조인은 크게 Cross Join, Qualified Join으로 나눌 수 있다.
CROSS JOIN
Cross Join은 카테시안 곱(Cartesian product) 원리를 사용한다.
연산 결과에 대한 카디널리티(Cardinality)는 N * M
이 된다.
QUALIFIED JOIN
Qualified Join은 집합 관계를 원리를 이용한 조인 기법이다.
- Inner Join: 집합적으로 교집합에 해당한다.
- Left Outer Join: 왼쪽 집합을 기준으로 조인하되, 매칭되는 요소가 없으면 NULL로 표시한다.
- Right Outer Join: 오른쪽 집합을 기준으로 조인하되, 매칭되는 요소가 없으면 NULL로 표시한다.
- Full Outer Join: Left, Right Join을 모두 한 결과와 같다.
PostgreSQL 시놉시스 분석
1 | # Join Syntax |
Q. 위 시놉시스에 따르면
T1 JOIN T2 ON T1.id = T2.id
에서 키워드를 생략하지 않고 쓰면 어떤 문장이 되는가?
A.
T1 INNER JOIN T2 ON T1.id = T2.id
INNER JOIN
은 JOIN
으로 생략해서 쓸 수 있다.
LEFT OUTER JOIN
은 LEFT JOIN
으로 생략해서 쓸 수 있다.
ON, USING, NATURAL
ON은 부울린 조건(boolean condition)을 이용하여 매핑한다.
USING은 지정한 컬럼 리스트 기준으로만 매핑한다.
NATURAL은 USING과 유사할 수 있는데, 동일한 컬럼명을 모두 매핑한다는 점에서 차이가 있다.
SELF JOIN
셀프 조인은 특별한 문법이 존재하는 것이 아니라, 자기 자신과 매핑하면 그것이 셀프 조인이다.
계층형 데이터 모델을 구축하는 데 이용될 수 있다.