■ EQUI JOIN

가장 많이 사용하는 조인 방법으로서 조인 대상이 되는 두 테이블에서 공통적으로 존재하는 컬럼의 값이 일치되는 행을 연결하여 결과를 생성하는 조인 방법이다.

FROM 절에 조인할 두 테이블 명을 제시하고, WHERE 조건에 두 테이블에 공통된 컬럼을 조인 조건으로 제시한다.

조인 조건은 테이블 N개를 조인시 N - 1개의 조인 조건을 주어야 한다. 2개 테이블 조인시 조건 1개, 3개시 2개....

SELECT e.ENAME, d.DNAME
FROM EMP e, DEPT d
WHERE E.DEPTNO = D.DEPTNO;

- EQUI JOIN에다가 AND 연산을 추가 할 수 있다.

SELECT E.ENAME, D.DNAME
FROM EMP e, DEPT d
WHERE E.DEPTNO = D.DEPTNO;
AND e.ename='SCOTT';

■ NON-EQUI JOIN

NON-EQUI JOIN은 조인 조건에 특정 범위 내에 있는지를 조사하기ㅐ 위해서 WHERE 절에 조인 조건을 = 연산자 이외의 비교 연산자를 사욯한다.

SELECT e.ename, e.sal, s.grade
FROM EMP e, SALGRADE s
WHERE e.sal >= S.LOSAL AND e.sal <=S.HISAL;

- BETWEEN AND 사용시

SELECT e.ename, e.sal, s.grade
FROM EMP e, SALGRADE s
WHERE e.sal BETWEEN S.LOSAL AND s.hisal;

SELECT e.ename, D.DNAME, E.SAL, s.grade
FROM EMP e, SALGRADE s, DEPT d
WHERE e.deptno = D.DEPTNO 
AND e.sal BETWEEN S.LOSAL AND s.hisal;

■ SELF JOIN 

자신의 테이블만으로는 원하는 결과를 알아 낼 수 없으나 만일 자신과 같은 테이블이 두개 존재한다면 질의가 가능한 경우 마치 같은 테이블이 두개 인 것처럼 자기 자신 테이블과 조인하는 것을 SELF JOIN 이라고 한다. 이 경우 FROM 절에 같은 테이블 이름을 두 번 반복하게 되므로 반드시 테이블 별칭을 사용해야 한다.

SELECT e.ename || '의 매니저는 ' ||  m.ename || ' 입니다'
FROM EMP e, EMP m
WHERE e.mgr = m.empno;

■ OUTER JOIN

외부 조인은 조인 조건에 만족하지 못하였더라도 해당 행을 나타내고 싶을 때 사용한다. 컬럼 값이 NULL일 경우...
외부 조인은 "(+)" 연산자를 사용하여 NULL 값이기에 배제된 행을 결과에 포함시킬 수 있다.

SELECT e.ename || '의 매니저는 ' ||  m.ename || ' 입니다'
FROM EMP e, EMP m
WHERE e.mgr = m.empno(+);

KING의 매니저는 입니다. 라고 나타난다. NULL 값도 표시를 한다.





+ Recent posts