INNER JOIN
두 개의 관련있는 키가 있는 테이블에서 컬럼의 값을 비교 후
join 조건에 맞는 행만 검색
SQL서버의 기본 조인 방식
EQUI JOIM
- 조인 대상 테이블의 칼럼 값들이 서로 정확하게 일치하는 경우에 사용
- where절에 =연산자를 사용해 조인조건을 명시
- PK, FK로 지정된 칼럼을 조인으로 많이 사용
- EQUI JOIN 성능을 높이려면 INDEX 기능을 사용하는 것이 좋음
NON EQUI JOIM
- 조인 대상 테이블의 어떤 칼럼 값도 일치하지 않을 떄 사용
- =연산자 이외의 연산자를 사용
- 사용빈도가 매우 낮음
- 연산자 : BETWEEN AND, IS NULL, IS NOT NULL, NOT, IN, <, >, <=, >=
NATURAL JOIM
- EQUI JOIN에서 JOIN조건이 =일 때 동일한 속성이 두 번 나타나게 되는데
이 중 중복을 제거하여 같은 속성을 한 번만 표시하게 하는 것
- NATURAL JOIN은 두 테이블의 동일한 이름을 가지는 컬럼이 모두 조인됨
동일한 칼럼을 내부적으로 찾게 되므로 테이블 별칭(Alias)를 주면 오류 발생
- NATURAL JOIN의 단점은 동일한 이름을 가지는 컬럼은 모두 조인이 되는데,
USING문을 사용하면 칼럼을 선택해서 조인할 수 있음(USING절 안에 포함되는 칼럼에 별칭을 주면 오류 발생)
SELF JOIN
- 같은 테이블에서 2개의 속성을 연결하여 EQUL JOIN을 하는 것
- 자기 자신과 조인
OUTER JOIN
조인 조건을 만족하지 않는 데이터를 처리하기 위한 조인임.
INNER조인은 두 테이블에 있는 일치하는 값만 가져오는데,
OUTER조인은 어느 한 쪽의 데이터를 모두 가져옴.
JOIN조건에 일치하지 않는 값을 추가할 때 사용
LEFT OUTER JOIN
- 왼쪽에 표기된 데이터를 기준으로 OUTER JOIN
RIGHT OUTER JOIN
- 오른쪽에 표기된 데이터를 기준으로 OUTER JOIN
FULL OUTER JOIN
- 양쪽 테이블의 모든 값을 읽어 JOIN
- LEFT OUTER JOIN과 RIGHT OUTER JOIN의 결과를 합집합으로 처리한 결과와 동일
CROSS JOIN
상호 조인이라고도 불림
한쪽 테이블의 모든 행등과 다른 테이블의 모든 행을 조인시키는 기능을 함
그래서 크로스조인의 결과 개수는 두 테이블의 행의 개수를 곱한 개수가 됨.