Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

표준조인 본문

SQLD

표준조인

d5ngs 2019. 10. 24. 17:59
STANDARD SQL
  • 표준 SQL 기능
    - STANDARD JOIN(CROSS, OUTER JOIN) 추가
    - SCALAR Subquery, TOP-N query 등의 새로운 Subquery 기능
    - ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능
    - Window Function 같은 새로운 분석 기능

  • 연산자 기능
    - UNION : UNION
    - INTERSCETION : INTERSECT
    - DIFFERENCE : MINUS / EXCEPT
    - PRODUCT : CROSS JOIN
    - SELECT : WHERE 절로 구현
    - PROJECT : SELECT 절로 구현
    - JOIN : 다양한 JOIN
    - DIVIDE : 사용X


FROM 절 JOIN 형태

  • INNER JOIN
    - 기존 WHERE절의 검색 조건과 JOIN 조건을 그대로 사용
    - 추가된 선택 기능으로 JOIN 조건을 FROM절에 명시적으로 정의

  • NATURAL JOIN
    - INNER JOIN의 하위 개념
    - 두 테이블간의 동일한 이름을 갖는 모든 컬럼들에 EQUI JOIN 수행
    - WHERE절에서 JOIN 조건을 정의할 수 없음(USING, ON 조건절)
    - SQL Server에서 지원X

  • USING 조건절
    - FROM절에 USING 조건절을 이용하여 같은 이름을 가진 컬럼 중 원하는 컬럼에 대해서만 EQUI JOIN 수행
    (NATURAL JOIN에서는 모두 일치하는 컬럼을 조인하지만 USING은 원하는 컬럼만 조인)
    - SQL Server에서 지원X
    >
    SELECT *
    FROM TAB1 X JOIN TAB2 Y
    USING(data1);


  • ON 조건절
    - 컬럼명이 다르더라도 JOIN 조건을 사용할 수 있음
    - Alias를 사용가능
    - WHERE절과의 혼용
    >
    SELECT E.ENAME, E.DEPTNO, D.DEPTNO, D.DNAME
    FROM EMP E JOIN DEPT D
    ON (E.DEPTNO = D.DEPTNO)
    WHERE E.DEPTNO = 30;

    - ON 조건절 + 데이터 검증 조건
    >
    SELECT TEAM_NAME, TEAM.STADIUM_ID, STADIUM_NAME
    FROM TEAM JOIN STADIUM
    ON TEAM.STADIUM_ID = STADIUM.STADIUM_ID
    ORDER BY STADIUM_ID

CROSS JOIN
  • 특징
    - PRODUCT의 개념으로 테이블간 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합
    - CARTESIAN PRODUCT 또는 CROSS PRODUCT와 같은 표현으로 결과는 M*N의 조합이 발생

  • 코드
    SELECT *
    FROM TAB1 X CROSS JOIN TAB2 Y;

OUTER JOIN
  • 특징
    - JOIN 조건에서 동일한 값이 없는 행도 반환

  • LEFT OUTER JOIN
    - 왼쪽 테이블이 기준

  • RIGHT OUTER JOIN
    - 오른쪽 테이블이 기준

  • FULL OUTER JOIN
    - 조인되는 모든 테이블의 데이터를 읽어 JOIN




* INNER, OUTER, CROSS JOIN 비교


TAB1



TAB2



  • INNER JOIN
    SELECT X.KEY1, Y.KEY2
    FROM TAB1 X INNER JOIN TAB2 Y
        ON(X.KEY1 = Y.KEY2)



  • LEFT OUTER JOIN
    SELECT X.KEY1, Y.KEY2
    FROM TAB1 X LEFT OUTER JOIN TAB2 Y
        ON(X.KEY1 = Y.KEY2)



  • RIGHT OUTER JOIN
    SELECT X.KEY1, Y.KEY2
    FROM TAB1 X RIGHT OUTER JOIN TAB2 Y
        ON(X.KEY1 = Y.KEY2)



  • FULL OUTER JOIN
    SELECT X.KEY1, Y.KEY2
    FROM TAB1 X FULL OUTER JOIN TAB2 Y
        ON(X.KEY1 = Y.KEY2)







'SQLD' 카테고리의 다른 글

계층형 질의 / 셀프 조인  (0) 2019.10.25
집합연산자  (0) 2019.10.25
JOIN  (0) 2019.10.24
GROUP BY, HAVING, ORDER BY  (0) 2019.10.24
함수  (0) 2019.10.24