Tech Collection

[SQL] JOIN 본문

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 를 사용하는 것보다 인덱스를 조인의 조건으로 사용하는 것이 훨씬 효율적이다.
  1. 내부 조인 (INNER JOIN)
    • INNER JOIN
    • EQUI JOIN
      • 연산자 : =
    • NON-EQUI JOIN
      • 연산자 : >, <, ≥, ≤
    • CROSS JOIN
      • 두 테이블의 카티션 프로덕트(곱집합)
    • NATURAL JOIN
      • 같은 이름을 가진 컬럼은 한 번만 추출된다.
  2. 외부 조인 (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;​
  3. 기타 조인
    • ANTI JOIN
      • 서브쿼리 내에서 존재하지 않는 데이터만 추출하여 메인 쿼리에서 추출하는 조인
    • SEMI JOIN
      • 서브쿼리 내에서 존재하는 데이터만 가지고 메인 쿼리에서 추출하는 방식
    • SELF JOIN
      • 동일한 한 테이블로 조인
728x90
반응형

'Concept > Note' 카테고리의 다른 글

[SQL] 실행 계획  (0) 2021.05.30
[SQL] SubQuery  (0) 2021.05.30
[SQL] Index  (0) 2021.05.30
[Interview] Java 기초 정리  (0) 2021.04.09