JOIN(2)
※ 내부 조인 복습
- EMPLOYEES 테이블에서 HIREDATE가 2003~2005년 까지인 사람 검색
- HIRE_DATE, FIRST_NAME, DEPARTMENT_NAME
SELECT HIRE_DATE, FIRST_NAME, DEPARTMENT_NAME FROM EMPLOYEES E JOIN DEPARTMENTS D
ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
AND HIRE_DATE BETWEEN TO_DATE('2003-01', 'YYYY-MM') AND TO_DATE('2006-01', 'YYYY-MM');
● 내츄럴 조인(NATURAL JOIN)
1. USING()
- 중복되는 컬럼이 생길 시 맨 앞으로 출력하여 중복 컬럼을 한 개만 출력한다.
- 컬럼 이름 뿐만 아니라 타입도 모두 같아야 한다.
(ex)
1. EMP 테이블과 DEPT 테이블을 JOIN한다(INNER JOIN에 USING() 사용)
SELECT * FROM EMP INNER JOIN DEPT
USING(DEPTNO);
2. EMP 테이블과 DEPT 테이블을 JOIN한다(NATURAL JOIN 사용)
SELECT * FROM EMP E NATURAL JOIN DEPT D;
● 외부 조인(OUTER JOIN)
- 두 개의 테이블 중 조건이 거짓이라도 지정한 테이블의 모든 정보가 검색되어야 할 때 사용한다.
1. LEFT OUTER JOIN : 왼쪽 테이블 정보 모두 검색
2. RIGHT OUTER JOIN : 오른쪽 테이블 정보 모두 검색
3. FULL OUTER JOIN : 양쪽 테이블 정보 모두 검색
4. SELF JOIN
(ex)
1. LEFT OUTER JOIN
SELECT * FROM STADIUM LEFT OUTER JOIN TEAM
ON HOMETEAM_ID = TEAM_ID;
2. RIGHT OUTER JOIN
SELECT * FROM TEAM RIGHT OUTER JOIN STADIUM
ON HOMETEAM_ID = TEAM_ID;
3. FULL OUTER JOIN
SELECT * FROM TEAM FULL OUTER JOIN STADIUM
ON HOMETEAM_ID = TEAM_ID;
4. SELF JOIN
SELECT E1.ENAME 사원, E2.ENAME 매니저 FROM EMP E1 JOIN EMP E2
ON E1.MGR = E2.EMPNO;