JOIN 이란?
여러 개의 테이블을 연결하여 하나의 테이블처럼 출력하는 방식
JOIN의 종류
1. JOIN
2. INNER JOIN
3. OUTER JOIN
다이어그램
JOIN 연산 (SQL -99)
1. NATURAL JOIN
SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM,
DEPTNO, D.DNAME, D.LOC
FROM EMP E NATURAL JOIN DEPT D
ORDER BY DEPTNO, E.EMPNO;
기준 열인 DEPTNO는 테이블 명을 명시하지 않는다.
2. JOIN ~ USING
SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM,
DEPTNO, D.DNAME, D.LOC
FROM EMP E JOIN DEPT D USING (DEPTNO)
ORDER BY DEPTNO, E.EMPNO;
NETURAL JOIN과 달리 기준열을 명시하여 사용한다.
3. JOIN ~ ON
SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM,
E.DEPTNO, D.DNAME, D.LOC
FROM EMP E JOIN DEPT D ON (E.DEPTNO = D.DEPTNO)
ORDER BY DEPTNO, E.EMPNO;
가장 많이 사용되는 방법으로 JOIN의 조건을 명시하여 사용한다.
4. LEFT OUTER JOIN ON
SELECT E1.EMPNO, E1.ENAME, E1.MGR,
E2.EMPNO AS MGR_EMPNO,
E2.ENAME AS MGR_ENAME
FROM EMP E1 LEFT OUTER JOIN EMP E2 ON (E1.MGR = E2.EMPNO)
ORDER BY E1.EMPNO;
5. RIGHT OUTER JOIN ON
SELECT E1.EMPNO, E1.ENAME, E1.MGR,
E2.EMPNO AS MGR_EMPNO,
E2.ENAME AS MGR_ENAME
FROM EMP E1 RIGHT OUTER JOIN EMP E2 ON (E1.MGR = E2.EMPNO)
ORDER BY E1.EMPNO;
6. FULL OUTER JOIN ON
SELECT E1.EMPNO, E1.ENAME, E1.MGR,
E2.EMPNO AS MGR_EMPNO,
E2.ENAME AS MGR_ENAME
FROM EMP E1 FULL OUTER JOIN EMP E2 ON (E1.MGR = E2.EMPNO)
ORDER BY E1.EMPNO;
'데이터베이스 > Oracle' 카테고리의 다른 글
[Oracle] 계층형 쿼리 (2) | 2024.03.07 |
---|---|
[Oracle] docker oracle 설치 (0) | 2023.07.11 |
[Oracle] Trigger 연습 (0) | 2023.04.13 |
[Oracle] 서브 쿼리 (0) | 2023.04.07 |
Oracle 설치 및 SCOTT 계정 활성화 (0) | 2023.04.06 |