SQL Join
join: 두 테이블을 하나로 합친다.
조인 조건 + 조인 유형으로 하나의 조인 연산을 표현한다,
1. Join Conditions(조인 조건)
비교 기준이 되는 열 선택
- natural: 이름이 같은 모든 열에 대해 값이 같은 행만 남긴다. 중복된 열 하나는 제거
- using: 이름이 같은 열이 존재할 때 열이름이 제공됨. 중복된 열 하나 제거
- on(=theta): 조인 조건 직접 명시. 중복된 열 제거 X
Relational Algebra에는 natural, theta만 존재
2. Join Types(조인 유형)
조인 조건에 부적합한 행을 남길지 결정
- inner: 조인 조건을 만족하는, 매칭된 행만 포함
- outer: 조인 조건을 불만족하는, 매칭되지 않은 행까지 포함
Outer join forms
outer join에서 조인 조건에 부적합한 행 중 어떤 것을 남길지 결정
- left outer: 왼쪽 테이블의 매칭 안된 행을 포함하고, 그 행의 오른쪽 테이블 열 값은 모두 null
- right outer: 오른쪽 테이블의 매칭 안된 행을 포함하고, 그 행의 왼쪽 테이블 열 값은 모두 null
- full outer: 좌우 테이블의 매칭 안된 행을 포함하고, 그 행들의 반대편 테이블 열 값은 모두 null
MySQL에서 full outer join은 제공하지 않음. left outer join과 right outer join의 union(합집합)으로 직접 구현해야 한다.
Distinct