[DB] ANSI Join vs ORACLE Join : 쿼리문이 이해가 안갈 때

임유빈·2022년 7월 25일
0

DB

목록 보기
13/15
post-thumbnail

1. ANSI Join과 ORACLE Join

(1) 안시 조인 (ANSI JOIN)

위의 예제는 EMP 테이블과 DEPT 테이블을 조인(내부 조인)하여 DEPT 테이블의 DNAME(부서명)을 조회한 쿼리이다.

조인(INNER JOIN)은 메인 테이블과 조인 테이블에 조인 칼럼(deptno)의 값이 동시에 존재해야 조회가 된다.

위의 조인 구조를 보면 EMP 테이블의 "GENT"는 DEPT 테이블과 조인이 안되었기 때문에 데이터 조회에서 제외된다.

위의 예제는 EMP 테이블과 DEPT 테이블을 아우터 조인(외부 조인)하여 DEPT 테이블의 DNAME(부서명)을 조회한 쿼리이다. 아우터 조인(OUTER JOIN)은 조인 테이블의 값이 존재하지 않아도 메인 테이블의 데이터가 조회된다. 조인 테이블의 값을 가져오지 못하면 NULL로 표시된다.

(메인 테이블) LEFT OUTER OIN (조인 테이블) 왼쪽 테이블이 메인 테이블이 된다.

아우터 조인은 메인 테이블의 데이터가 모두 조회되고, 조인 테이블의 값을 참조하여 조인이 되었을 경우 해당 값(dname)을 표시하고 조인이 되지 않았을 경우 NULL로 표시한다. 조인(INNER JOIN)인 처럼 조인이 되지 않았다고 조회에서 제외하지 않는다.

(2) 오라클 조인 (Oracle Join)

오라클 조인은 조인 칼럼(deptno) 조건을 WHERE 절에 작성하면 된다.

조인 조건을 ON절에서 WHERE 절로 위치가 변경되었고 조인 칼럼에 (+)이 붙어있다.

조인 칼럼에 (+)를 붙이면 해당 칼럼의 테이블이 조인 테이블이 된다.

아우터 조인의 핵심은 메인 테이블의 데이터는 무조건 조회가 되고 조인 테이블은 참조 용도로만 사용된다.

오라클 조인에서는 RIGHT OUTER JOIN이라는 용어는 사용 안 하지만, 조인 칼럼의 (+) 위치를 변경 함으로써 RIGHT OUTER JOIN과 비슷하게 만들 수 있다.

RIGHT OUTER JOIN은 개념을 이해하고 있으면 된다. 아우터 조인은 LEFT OUTER JOIN을 확실히 익혀 두도록 해야한다.

오라클 조인에서 크로스 조인을 하기 위해서는 FROM 절에 테이블을 작성하고 WHERE 절에서 조인 칼럼을 작성하지 않으면 두 개의 테이블이 서로 크로스 조인된다.

0개의 댓글