Concept/Note
[SQL] JOIN
eee_269
2021. 5. 30. 22:43
728x90
반응형
- 조인을 명시할 때는 확실하게 구체적으로 표시하기 (INNER JOIN / LEFT OUTER JOIN..)
- Row가 적은 **Driving Table(outer table) + Driven Table(inner table)**의 조인키는 인덱스 사용하기
- 실행속도 = 외부 루프 테이블 사이즈 * 내부 루프 테이블 접근 횟수
- USE INDEX 를 사용하는 것보다 인덱스를 조인의 조건으로 사용하는 것이 훨씬 효율적이다.
- 내부 조인 (INNER JOIN)
- INNER JOIN
- EQUI JOIN
- 연산자 : =
- NON-EQUI JOIN
- 연산자 : >, <, ≥, ≤
- CROSS JOIN
- 두 테이블의 카티션 프로덕트(곱집합)
- NATURAL JOIN
- 같은 이름을 가진 컬럼은 한 번만 추출된다.
- 외부 조인 (OUTER JOIN)
: 조인했을 때 한 쪽의 테이블에 데이터가 없어도 조인 결과에 포함시킨다.- LEFT OUTER JOIN
- RIGHT OUTER JOIN
- FULL OUTER JOIN : 완전 외부 조인
- 왼쪽 외부 조인 + 오른쪽 외부 조인
- UNION : 중복된 행 제거, 두 쿼리 결과 합침
- UNION ALL : 두 쿼리 결과 모두 합침
- SELECT 문장 1과 2가 결과 열의 개수가 같아야 한다.
SELECT Name, Addr FROM StudentTable UNION [ALL] SELECT Name, Addr FROM ClubTable;
- 기타 조인
- ANTI JOIN
- 서브쿼리 내에서 존재하지 않는 데이터만 추출하여 메인 쿼리에서 추출하는 조인
- SEMI JOIN
- 서브쿼리 내에서 존재하는 데이터만 가지고 메인 쿼리에서 추출하는 방식
- SELF JOIN
- 동일한 한 테이블로 조인
- ANTI JOIN
728x90
반응형