Home 제2장 - 제1절: 표준 조인(STANDARD JOIN)
Post
Cancel

제2장 - 제1절: 표준 조인(STANDARD JOIN)

1. STANDARD SQL 개요

 ANSI/ISO 표준 SQL의 기능은 다음 내용을 포함

  • STANDARD JOIN 기능 추가
    (CROSS, OUTER JOIN 등 새로운 FROMJOIN 기능들)
  • SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들
  • ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능
  • WINDOW_FUNCTION 같은 새로운 개념의 분석 기능들

1.1. 일반 집합 연산자

일반 집합 연산자를 현재의 SQL과 비교

  1. UNION 연산은 UNION 기능으로.
    : 수학적 합집합 제공.
     (이를 위해 공통 교집합 중복 없애는 사전 작업.)
  2. INTERSECTION 연산은 INTERSECT 기능으로.
    : 수학적 교집합.
  3. DIFFERENCE 연산은 EXPECT(Oracle은 MINUS) 기능으로.
    : 수학적 차집합.
     첫 번째 집합에서 두 번째 집합과의 공통집합 제외한 부분.
     Oracle은 MINUS, 이외는 EXCEPT 사용.
  4. PRODUCT 연산은 CROSS JOIN 기능으로.
    : JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합.
     양쪽 집합의 $M * N$ 건의 데이터 조합 발생.

1.2. 순수 관계 연산자

 관계형 데이터베이스 구현하기 위해 새롭게 만들어진 연산

  1. SELECT 연산은 WHERE 절로 구현
  2. PROJECT 연산은 SELECT 절로 구현
    : SELECT 절의 칼럼 선택 기능
  3. (NATURE) JOIN 연산은 다양한 JOIN 기능으로 구현
    : WHERE 절의 INNER JOIN 조건과 함께
     FROM 절의 NATURAL JOIN, INNER JOIN, OUTER JOIN,
     USING 조건절, ON 조건절 등
  4. DIVIDE 연산은 현재 사용 X



1.3. FROMJOIN 형태

 ANSI/ISO에서 표시하는 FROM 절의 JOIN 형태

  • INNER JOIN
    : WHERE 절에서부터 사용하던 JOINDEFAULT 옵션.
    JOIN 조건에서 동일한 값이 있는 행만 반환.
    CROSS JOIN, OUTER JOIN과는 같이 사용불가.
  • NATURAL JOIN
    : 두 테이블 간 동일한 이름 갖는 모든 칼럼들에 대해
      EQUI(=) JOIN 수행.
      이 경우엔, USING, ON, WHERE 절에서
      JOIN 조건 정의 불가능.
    JOIN에 사용된 칼럼들은 같은 데이터 유형 필수.
    ALIAS나 테이블명과 같은 접두사 붙일 수 없음.
  • USING 조건절
    : FROM 절의 USING 조건절 이용 시
    같은 이름 가진 칼럼들 중 원하는 칼럼에 대해서만
    선택적으로 EQUI JOIN 가능.
  • ON 조건절
    : JOIN 서술부(ON)와 JOIN 서술부(WHERE) 분리하여 이해 쉬움.
     칼럼명 다르더라도 JOIN 조건 사용 가능.
     임의의 JOIN 조건 지정, 이름 다른 칼럼명을 JOIN 조건으로 사용,
    JOIN 칼럼 명시하기 위해서는 ON 사용.
    ALIAS나 테이블 명과 같은 접두사 사용하여
      SELECT에 사용되는 칼럼을 명확히 지정 필요.
  • CROSS JOIN
    : 일반 집합 연산자의 PRODUCT 개념으로
      테이블 간 JOIN 조건 없는 경우 생길 수 있는
      모든 데이터의 조합.
    결과 => 양쪽 집합의 \(M \times N\) 건의 데이터 조합 발생
  • OUTER JOIN
    : INNER JOIN과 대비됨.
    JOIN 조건에서 동일한 값 없는 행도 반환 시 사용 가능.
    OUTER JOIN 역시 JOIN 조건을 FROM 절에서 정의하므로
      USING 조건절이나 ON 조건절 사용 필수.

테이블 간의 JOIN 조건을 FROM 절에서 명시적으로 정의 가능.

Contents