조인문(JOIN)
- 두 개 이상의 테이블에서 연관성을 가지고 있는 데이터들을 따로 분류하여 새로운 가상의 테이블을 이용하여 출력
- 서로 다른 테이블에서 각 각의 공통 값을 이용함으로써 필드를 조합할 수 있다.
사용법
Oracle 전용 구문방식
ANSI 표준 구문방식
JOIN의 종류
- INNER JOIN(내부 조인) : 교집합
- OUTER JOIN(외부 조인) : 합집합
- LEFT OUTER JOIN (왼쪽 외부 조인)
- RIGHT OUTER JOIN (오른쪽 외부 조인)
- FULL OUTER JOIN (완전 외부 조인)
INNER JOIN
- 테이블 A와 테이블 B 모두 조건 구문에 일치하는 데이터만 반환(교집합)
- SELECT 컬럼
FROM TABLE_A INNER JOIN TABLE_B ON (조건구문);
LEFT OUTER JOIN
- LEFT JOIN 이라 부르기도 함
- SELECT 컬럼
FROM TABLE_A LEFT JOIN TABLE_B ON (조건구문);
- TABLE_A 모두 반환
- TABLE_B 조건 구문에 일치하는 데이터만 반환(TABLE_A와 공통부)
RIGHT OUTER JOIN
- RIGHT JOIN 이라 부르기도 함
- SELECT 컬럼
FROM TABLE_A RIGHT JOIN TABLE_B ON (조건구문);
- TABLE_B 모두 반환
- TABLE_A 조건 구문에 일치하는 데이터만 반환(TABLE_B와 공통부)
FULL OUTER JOIN
-FULL JOIN 이라 부르기도 함
- SELECT 컬럼
FROM TABLE_A FULL JOIN TABLE_B ON (조건구문);
- TABLE_A, TABLE_B 모든 데이터 반환
SELF JOIN
- 같은 테이블끼리 조인
- SELECT A1.컬럼 A2.컬럼....
FROM TABLE_A A1 JOIN TABLE_A A2 ON (A1.컬럼= A2.컬럼);
다중 JOIN
- 여러 개의 조인문을 한번에 사용할 수 있음
- 다중 JOIN을 사용할때에는 조인의 순서를 지키며 사용해야 함
-
EX) SELF JOIN, 다중 JOIN
- 자신이 관리하고 있는 사원의 이름, 급여 및 직책명이 어떻게 되는지 검색
- 매니저 ID = 사원 ID(EMP_ID) 매칭
- EMPLOYEE E1 매니저 테이블
- EMPLOYEE E2 관리대상이 되는 사원 테이블
SELECT E1.MANAGER_ID AS "관리자 ID",
E2.EMP_NAME AS "관리자명",
E1.EMP_NAME AS "사원명",
E1.SALARY AS "사원급여",
J.JOB_NAME AS "직책명"
FROM EMPLOYEE E1
JOIN JOB J ON (E1.JOB_CODE=J.JOB_CODE)
JOIN EMPLOYEE E2 ON (E1.MANAGER_ID = E2.EMP_ID);