본문 바로가기

DBMS

[DBMS] 14

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;

'DBMS' 카테고리의 다른 글

[DBMS] 16  (0) 2021.11.09
[DBMS] 15  (0) 2021.11.08
[DBMS] 13  (0) 2021.11.06
[DBMS] 12  (0) 2021.11.05
[DBMS] 11  (0) 2021.11.04