티스토리 뷰

자격증/SQLD

SQLD - SQL 활용 [표준 조인]

나는연어다 2017. 8. 14. 11:18

1.   STANDARD SQL 개요

-       표준 SQL의 기능

STANDARD JOIN 끼능 추가(CROSS, OUTER JOIN 등 새로운 FROM JOIN 기능들)

SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들

ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능

WINDOW FUNCTION 같은 새로운 개념의 분석 기능들

가.  일반 집합 연산자

UNION 연산은 UNION 기능

INTERSECTION 연산은 INTERSECT 기능

DIFFERENCE 연산은 EXCEPT(OracleMINUS) 기능

PRODUCT 연산은 CROSS JOIN 기능

나.  순수 관계 연산자

SELECT 연산은 WHERE 절로 구현

PROJECT 연산은 SELECT 절로 구현

(NATURAL) JOIN 연산은 다양한 JOIN 기능으로 구현

DIVIDE 연산은 현재 사용되지 않는다.

 

2.   FROM JOIN 형태

-       INNER JOIN
기존 WHERE 절의 검색 조건과 JOIN 조건을 그대로 사용할 수 있으며
추가된 선택 기능으로 JOIN 조건을 FROM절에서 명시적으로 정의할 수 있게 되었다.

-       NATURAL JOIN
INNER JOIN
의 하위 개념으로
두 테이블간의 동일한 이름을 갖는 모든 칼럼드에 EQUL JOIN을 수행한다.

-       USING 조건절

-       ON 조건절

-       CROSS JOIN

-       OUTER JOIN

 

3.   INNER JOIN

-       INNER JOIN이란?
JOIN
조건에서 동일한 값이 있는 행만 반환
FROM
절에서 정의
USING, ON
조건절을 필수적으로 사용해야 한다.

 

4.   NATURAL JOIN

-       NATURAL JOIN이란?
두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 EQUL(=) JOIN을 수행
NATURAL JOIN
이 명시되면 WHERE 절에서 JOIN 조건을 정의할 수 없다. (USING, ON 조건절)
SQL Server
에서는 지원하지 않는다.

 

5.   USING 조건절

-       USING 조건절이란?
FROM
절에 USING 조건절을 이용하여 같은 이름을 가진 칼럼중에 원하는 칼럼에 대해서만 EQUL JOIN을 할 수 있다.
(NATURAL JOIN
에서는 모든 일치되는 칼럼을 조인하지만 USING은 원하는 칼럼만 JOIN한다.)
SQL Server
에서는 지원하지 않는다.
JOIN
칼럼에 대해서 ALIAS나 테이블 이름과 같은 접두사를 붙일 수 없다.

 

6.   ON조건절

-       ON 조건절 특징
ON
조건절을 사용하면 칼럼명이 다르더라도 JOIN 조건을 사용할 수 있다.
임의의 JOIN 조건을 지정할 수 있다.
이름이 다른 칼럼명을 JOIN 조건으로 사용할 수 있다.
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 조건절 + 데이터 검증 조건 추가

ON 조건절에 데이터 검색 조건을 추가할 수 있다.

검색 조건 목적인 경우는 WHERE 절을 사용할 것을 권고한다.

(다만, 아우터 조인에서 조인의 대상을 제한하기 위한 목적으로 사용되는 추가 조건의 경우 ON절에 표기한다.)

다.  ON 조건절 예제

SELECT   TEAM_NAME , TEAM.STADIUM_ID, STADIUM_NAME
FROM    TEAM JOIN STADIUM

ON       TEAM.STADIUM_ID = STADIUM.STADIUM_ID

ORDER BY STADIUM_ID

라.  다중 테이블 JOIN

 

7.   CROSS JOIN

-       일반 집합 연산자의 PRODUCT의 개념으로 테이블 간 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말한다.

-       두 개의 테이블에 대한 CARTESIAN PRODUCT 또는 CROSS PRODUCT와 같은 표현으로 결과는 양쪽 집합의 M*N건의 데이터 조합이 발생한다.

8.   OUTER JOIN

-       OUTER JOIN 이란?
JOIN
조건에서 동일한 값이 없는 행도 반환할 때 사용


가.  LEFT OUTER JOIN

조인 수행시 좌측 테이블에서 데이터를 먼저 읽은 후, 우측 테이블에서 JOIN 대상을 읽어 온다.

, 좌측 테이블이 기준이 된다.

나.  RIGHT OUTER JOIN

조인 수행시 우측 테이블이 기준이 되어 결과를 생성한다.

다.  FULL OUTER JOIN

조인되는 모든 테이블의 데이터를 읽어 JOIN한다.

RIGHT OUTER JOIN LEFT OUTER JOIN의 결과를 합집합으로 처리한 결과와 동일하다.

 

9.   INNER vs OUTER vs CROSS JOIN 비교


반응형
LIST
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함