- EQUIJOIN
- NON EQUIJOIN
사원 조회시에 급여등급이 나오도록 조인한다.
SELECT e.empno, e.ename, e.sal, s.grade FROM emp e, salgrade s
WHERE e.sal BETWEEN s.losal AND s.hisal;
- OUTER JOIN
dept에 새로운 부서가 생겼는데 EQUIJOIN 했을 경우는 조회가 안된다.
emp에 사원이 배치 안 되었더라도 부서는 나오도록 할 경우에 사용한다.
정보가 부족한 쪽에 (+)를 붙여서 사용한다.
IN 연산자, OR 연산자 사용 못한다.
SELECT e.empno, e.ename, d.deptno, d.dname FROM emp e, dept d
WHERE e.deptno(+) = d.deptno
- SELF JOIN
자신과 JOIN 해서 사용한다.
MGR 내 상관이 누구다를 가리킨다
자신에게 상관이 있는 사원 테이블, 자신에게 부하가 있는 상관 테이블을 조인한다.
이 경우에 SELF JOIN을 이용한다.
SELECT w.ename worker, m.ename manger
FROM emp w, emp m
WHERE w.mgr = m.empno
자기위에 상관이 하나도 없는 사람도조회하기 위해서 WHERE w.mgr = m.empno(+) 사용
SELECT w.ename worker, m.ename manger
FROM emp w, emp m
WHERE w.mgr = m.empno(+)
- Cartesian Product
조인 조건이 생략되거나 잘못된 경우 발생한다
'database > oracle' 카테고리의 다른 글
TABLESPACE 이해 (0) | 2012.03.21 |
---|---|
Sub Query (0) | 2012.03.21 |
그룹 결과 제한 - HAVING 사용 (0) | 2012.03.21 |
오라클에서 쿼리 실행결과 저장하기 방법 (0) | 2012.03.21 |
SQL Plus 기본 명령 (0) | 2012.03.21 |