KDT/TIL

2022-08-09 (Tue)

imname1am 2022. 8. 14. 16:38
반응형

Contents

    8장. 조인 (JOIN)

    ✓ 하나의 SQL 명령문에 의해 여러 테이블에 저장된 데이터를 한 번에 조회할 수 있는 기능

    요약

     

    [1] 카티션 곱

    두 개 이상의 테이블에 대해 연결 가능한 행을 모두 결합

     

     

    [2] EQUI JOIN

    요약

     

     1) WHERE절 사용

    조인 대상 테이블에서 공통 칼럼을 ‘ =‘ 비교해 같은 값을 갖는 행을 연결해 결과 생성
    (WHERE 절 사용)

     

     2) NATURAL JOIN

    테이블의 모든 칼럼 대상으로 공통 칼럼 조사 후, 내부적으로 조인문 생성
    (WHERE 절 사용 X) 

    💥 NATURAL JOIN 시, 조인 애트리뷰트에 테이블 별명 사용하면 X

     

     3) JOIN ~ USING

    USING 절에 조인 대상 칼럼 지정
    ✓ 칼럼명, 조인 대상 테이블과 동일한 이름이어야

    사용법

    SELECT    tbl1.colA, tbl2.colB, col
    FROM       tbl1 JOIN tbl2
                      USING(col);

    💥 조인 애트리뷰트에 테이블 별명 사용하면 X ‼  x2

     

     

    [3] NON-EQUI JOIN (= 범위 조인) 🌟🌟

    ' = ' 조건이 아닌 연산자 사용 (BETWEEN a AND b 등) 

     

     

    [4] OUTER JOIN

    EQUI JOIN의 조인 조건에서 양측 칼럼 값 中 하나가 NULL이지만
    조인 결과로 출력할 필요가 있는 경우 사용

    ⇨ 예) 학생 테이블과 교수 테이블을 EQUI JOIN하여 학생의 지도 교수 이름 출력

            (조건 : 지도 학생을 한 명도 배정받지 못한 교수 이름도 반드시 함께 출력)

     

    💥 OUTER JOIN 제약사항

    ✓ IN, OR 연산자 사용 불가

     

     1) (+) 기호 사용한 OUTER JOIN

    조인 조건문에서 NULL이 존재하는 테이블 칼럼에 (+) 추가

    ⇨ 예1) 지도 교수가 배정되지 않은 학생 이름도 함께 출력 (학생 관점)

     

    ⇨ 예2) 지도 학생을 배정받지 않은 교수 이름도 함께 출력 (교수 관점)

     

     2) LEFT/RIGHT/FULL OUTER JOIN ~ ON

    ■ LEFT OUTER JOIN

    ➝ FROM   절의 왼쪽에 위치한 테이블이 NULL 을 가질 경우 사용

    ➝ WHERE절의 오른편에 ‘(+)’ 기호 추가

    RIGHT OUTER JOIN 

     FROM   절의 오른에 위치한 테이블이 NULL 을 가질 경우 사용

    ➝ WHERE절의 에 ‘(+)’ 기호 추가

    FULL OUTER JOIN 

    ⚠ WHERE절에서 양쪽에 (+) 불가

     

     

    [5] SELF JOIN 🌟🌟

    한 테이블 내에 있는 칼럼끼리 연결하는 조인이 필요한 경우

    요약

     

     1) WHERE절 사용

    c : 학과 (자식) / d : 학부 (부모)

     

     2) JOIN ~ ON

     사용법

    SELECT    tbl1.col, tbl2.col
    FROM       tbl1  JOIN tbl2
                     ON tb1.col = tbl2.col;

     

    반응형