데이터베이스/SQL

08. 여러 테이블을 하나의 테이블 처럼 사용하는 조인(P.215)

itboxer91 2020. 8. 7. 20:01

08-2. 조인 종류

 

1. 등가조인(equi join/inner join/simple join) 

:  등가조인은 테이블을 연결한 후에 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식이다.

 

1) 문법 : P.222 참고

 

2) 예시/결과

 

#1. 참고자료 : DEPTNO 열로 등가조인

/*8-5 실습*/
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DEPTNO, D.DNAME, D.LOC 
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
ORDER BY D.DEPTNO, E.EMPNO;

#2. 참고자료 : DEPTNO 열로 등가조인 한 결과값

#3. 참고자료 : INNER JOIN 한 결과값

3) 실무활용 TIP
- 실무에서는 겹치지 않는 열 이름이더라도 대부분 테이블이나 별칭을 명시한다.

- 기본적으로 데카르트 곱 현상이 일어나지 않게 하는 데 필요한 조건식의 최소 개수는 조인 테이블 개수에서 하나를 뺀 값이다.

 

※ 1분 복습

SELECT *
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND E.SAL <= 2500
AND E.EMPNO <= 9999
ORDER BY E.EMPNO;

2. 비등가 조인(non-equi join)

: 등가 조인 이외의 방식을 의미한다.

 

1) 문법

 

2) 예시/결과

 

#1. 참고자료 : 비등가 조인

SELECT *
FROM EMP E, SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL;

#2. 참고자료 : 비등가 조인 결과

: 조인 조건을 지정하지 않을시에 데카르트 곱 현상이 발생한다.

3) 실무활용 : 조인 조건이 특정열의 일치 여부(* 등가조인) 외에도 사용 될 수 있음을 알아야 한다. 

 

3. 자체 조인

 

4. 외부조인(Outer join) : 두 테이블간 조인 수행에서 조인 기준 열의 어느 한쪽이 NULL이어도 강제로 출력하는 방식을 외부조인(아우터 조인)이라고 한다.

 

1) 문법

 

- 왼쪽 외부 조인(Left Outer Join) : WHERE TABLE1.COL1=TABLE2.COL1(+)

- 오른쪽 외부 조인(Right Outer Join) : WHERE TABLE1.COL1(+)=TABLE2.COL1

 

2) 예시/결과

 

- 실습 8-9, 예시 : 왼쪽 외부 조인

SELECT E1.EMPNO, E1.ENAME, E1.MGR,
       E2.EMPNO AS MGR_EMPNO,
       E2.ENAME AS MGR_ENAME
FROM EMP E1, EMP E2
WHERE E1.MGR = E2.EMPNO(+)
ORDER BY E1.EMPNO;

- 결과 : 왼쪽 외부 조인 결과

- 실습 8-10, 예시 : 오른쪽 외부 조인 사용하기

SELECT E1.EMPNO, E1.ENAME, E1.MGR,
       E2.EMPNO AS MGR_EMPNO,
       E2.ENAME AS MGR_ENAME
FROM EMP E1, EMP E2
WHERE E1.MGR(+) = E2.EMPNO
ORDER BY E1.EMPNO;

- 결과 : 오른쪽 외부 조인 결과

3) 실무활용