SQL JOINs   SQL 조인

(2017-12-21)

SQL 다중 테이블, SQL 집합 연산

1. `일반 집합 연산`과 `관계형 DB의 관계 연산` 비교

  ㅇ 일반 집합 연산
     - 합집합 (UNION)
        . 관계형 DB 대응 例) WHERE OR,  SELECT () UNION SELECT ()
     - 교집합 (INTERSECTION) 
        . 관계형 DB 대응 例) WHERE AND, SELECT () INTERSECT SELECT ()
     - 차집합 (DIFFERENCE)
        . 관계형 DB 대응 例) SELECT () EXCEPT SELECT ()
     - 곱집합 (PRODUCT)
        . 관계형 DB 대응 例) CROSS JOIN

  ㅇ 관계형 DB의 관계 연산
     - SELECT
     - PROJECT
     - (Natural) JOIN
     - DIVIDE : 실제 구현 없음


2. 다중 테이블에 대한 SQL JOINs (다중 테이블 탐색)

  ㅇ UNION 형태
     - FULL OUTER JOIN과 같은 개념
     - 구분
        . UNION : 공통 교집합의 중복을 제거하기 위해 정렬 작업이 내부적으로 발생 (속도 느림)
        . UNION ALL : 공통 교집합까지 그대로 보여 줌 (속도 빠름)

  ㅇ JOIN 형태
     

     - 내부 조인
        . 기본적으로, 가능한 모든 행과의 조합(카르테시안 곱)을 생성
        . 구분
           .. INNER JOIN 또는 JOIN : 테이블 간 특정 조건에서 동일 값이 있는 행 만 반환
           .. 이 경우에, USING 조건절이나 ON 조건절을 반드시 사용해야 함
           .. NATURAL JOIN : 테이블 간 동일 이름의 모든 칼럼들에서 동일 값이 있는 행 만 반환
           .. CROSS JOIN : 테이블 간 JOIN 조건이 없는 경우 가능한 모든 데이터의 조합

        . 例) 두 테이블에서 같은 값을 갖는 레코드들을 생성하려면,
           ..  SELECT column FROM table1 a INNER JOIN table2 b ON a.column = b.column;

     - 외부 조인 (왼쪽 또는 오른쪽)
        . 기본적으로, 다른 테이블의 행과 일치하지 않은 행도 보이게 함
        . 구분
           .. LEFT OUTER JOIN 또는 LEFT JOIN
           .. RIGHT OUTER JOIN 또는 RIGHT JOIN
           .. FULL OUTER JOIN

  ㅇ 서브 쿼리 형태


[SQL] 1. SQL 2. SQL 기초 활용 3. SQL 조인 4. RQBE 5. SAG

 
        최근수정     참고문헌