** Join
* 드라이빙 테이블(Driving Table) : 조인 시 선행 테이블, Main table

*카티션 곱(cartesian product, cross join)
두개 이상의 테이블에 대해 연결 가능한 행을 모두 결합하는 조인방법.
WHERE 절에서 조인 조건절을 생략하거나 조인 조건을 잘못 설정하여 양쪽 테이블을 연결하는 조건을 만족하는 행이 하나도 없는 경우에 발생한다.

* EQUI JOIN
SQL 문에서 가장 많이 사용되는 조인으로 조인 대상 테이블에서 공통칼럼을 '=' 비교를 통해 같은 값을 갖는 행을 연결하여 결과를 생성하는 조인 방법임

* NON-EQUI JOIN
조인 조건에서 '<', BETWEEN a AND b 와 같이 '=' 조건이 아닌 다른 종류의 연산자를 사용하는 조인 방법

* OUTER JOIN
NULL에 어떤 연산을 적용시켜도 결과는 null 이 된다.
따라서 조인조건 중 하나의 값이 NULL일 경우 값이 NULL이 되어 출력되지 않는다.
하지만 결과가 NULL 일지라도 출력해야 할 경우가 발생하는데 이때 사용되는 것이 OUTER JOIN 이다.
(+) 기호를 사용한 OUTER JOIN NULL이 출력되는 칼럼에 (+) 기호를 추가하면 된다.
예를 들어 학생 테이블과 교수 테이블을 조인할 때 지도 교수가 배정되지 않은 학생의 명단(즉, 지도교수 값이 NULL인 명단)도 출력해야 할 경우 교수 테이블에 (+) 기호를 추가한다.
하지만 (+) 기호를 양쪽 테이블에 동시에 사용할 수 없다.

OUTER JOIN 연산자 (+)는 NULL이 존재하는 칼럼 쪽에 표시한다.
예) 지도교수가 없는 학생을 출력 하려 할 때는 지도 교수값이 NULL 임
OUTER JOIN 에서는 IN 연산자를 사용할 수 없다.
다른 조건과 OR 연산자로 결합 할 수 없다.

*SELF JOIN
하나의 테이블에서 두개의 칼럼을 연결하여 EQUI JOIN 을 하는 조인
한 개 이상의 테이블을 특정 컬럼 값이 같은 것을 연계하여 데이터를 조회

'Database > Oracle' 카테고리의 다른 글

to_char format  (0) 2009.12.30
Group Fucntion  (0) 2009.12.30
Sub Query  (0) 2009.12.30
DML  (0) 2009.12.30
commit case  (0) 2009.12.30

+ Recent posts