자격증/SQLD

SQLD / 과목 2 / 제 2장 SQL 활용 / 표준 조인, 집합 연산자

CBJ 2023. 3. 10. 16:34

1. 표준 조인

1) STANDARD SQL 개요

일반 집합 연산자

  • UNION : 합집합(중복 행은 1개로 처리
  • UNION ALL : 합집합(중복 행도 표시)
  • INTERSECTION : 교집합(INTERSECTION)
  • EXCEPT, MINUS : 차집합(DIFFERENCE)
  • CROSS JOIN : 곱집합(PRODUCT)

 

순수 관계 연산자

  • SELECT 연산은 WHERE절로 구현
  • PROJECT연산은 SELECT절로 구현
  • NATURAL JOIN연산은 다양한 JOIN기능으로 구현
  • DIVIDE 사용 안 함

2) FROM 절 JOIN 형태

  • INNER JOIN
  • NATURAL JOIN
  • USING 조건절
  • ON 조건절
  • CROSS JOIN
  • OUTER JOIN

3) INNER JOIN

OUTER(외부) JOIN과 대비하여 내부 JOIN이라고 하며 JOIN 조건에 동일한 값이 있는 행만 반환

WHERE절에서 사용하던 JOIN 조건을 FROM 절에서 정의하겠다는 표시이므로 USING조건절이나 ON조건절 필수

4) NATURAL JOIN

두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 EQUI(=) JOIN을 수행

NATURAL JOIN이 명시되면, 추가로 USING조건절, ON조건절, WHERE절에서 JOIN조건을 정의할 수 없으며 SQL Server에서는 지원하지 않는다.

5) USING 조건절

FROM절의 USING조건절을 이용하면 같은 이름을 가진 칼럼들 중에서 원하는 칼럼에 대해서만 선택적으로 EQUI JOIN을 할 수 있다. SQL Server에서는 지원하지 않음

6) ON 조건절

JOIN 서술부(ON 조건절)와 비 JOIN  서술부(WHERE 조건절)를 분리하여 이해가 쉬우며, 칼럼명이 다르더라도 JOIN 조건을 사용할 수 있다. ON 조건절에 사용한 괄호는 옵션 사항이다.

7) CROSS JOIN

테이블 간 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합, 두 개의 테이블에 대한 CARTESIAN PRODUCT 또는 CROSS PRODUCT와 같은 표현으로 결과는 양쪽 M*N 건의 데이터 조합이다.

8) OUTER JOIN

JOIN 조건에 동일한 값이 없는 행도 반환할 때 사용, USING 조건절이나 ON 조건절을 필수적으로 사용

 

LEFT OUTER JOIN

JOIN 수행 시 먼저 표기된 좌측 테이블에 해당하는 데이터를 먼저 읽은 후 나중에 표기된 우측 테이블에서 JOIN 대상 데이터를 읽어 온다.

 

RIGHT OUTER JOIN

LEFT OUTER JOIN과 반대로 우측 테이블이 기준이 된다.

 

FULL OUTER JOIN

JOIN 수행 시 좌측, 우측 테이블의 모든 데이터를 읽어 JOIN 하여 결과 생성

9) INNER, OUTER, CROSS JOIN 비교


2. 집합 연산자

서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때와 동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때 사용