하나 이상의 테이블에서 데이터를 조회하기 위해 사용
수행 결과는 하나의 Result Set으로 나옴
1) 내부 조인 (INNER JOIN)
2) 외부 조인 (OUTER JOIN)
3) 교차 조인 (CROSS JOIN)
4) 비등가 조인 (NON EQUAL JOIN)
5) 자체 조인 (SELF JOIN)
6) 자연 조인 (NATURAL JOIN)
7) 다중 조인
1) 연결에 사용할 두 컬럼명이 다른 경우 : ON() 사용
SELECT EMP_ID , EMP_NAME , DEPT_CODE , DEPT_TITLE FROM EMPLOYEE JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID);
2) 연결에 사용할 두 컬럼명이 같은 경우 : USING() 사용
SELECT EMP_NO , EMP_NAME , JOB_CODE , JOB_NAME FROM EMPLOYEE JOIN JOB USING(JOB_CODE);
--> 컬럼의 값이 일치하지 않으면 결과에 포함 X!
SELECT EMP_ID , EMP_NAME , DEPT_CODE , DEPT_TITLE FROM EMPLOYEE LEFT JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID);
SELECT EMP_NAME , DEPT_TITLE FROM EMPLOYEE CROSS JOIN DEPARTMENT;
SELECT EMP_NAME , SALARY , SAL_GRADE.SAL_LEVEL FROM EMPLOYEE JOIN SAL_GRADE ON(SALARY BETWEEN MIN_SAL AND MAX_SAL);
SELECT E1.EMP_ID , E1.EMP_NAME, NVL(E1.MANAGER_ID) , NVL(E2.EMP_NAME) FROM EMPLOYEE E1 LEFT JOIN EMPLOYEE E2 ON(E1.MANAGER_ID = E2.EMP_ID);
SELECT EMP_NAME , JOB_NAME FROM EMPLOYEE NATURAL JOIN JOB;
아래 코드와 동일
SELECT EMP_NAME , JOB_NAME FROM EMPLOYEE JOIN JOB USING(JOB_CODE)
SELECT EMP_NAME , DEPT_TITLE , LOCAL_NAME FROM EMPLOYEE JOIN DEPARTMENT ON(DEPT_CODE = DEPT_ID) JOIN LOCATION ON(LOCATION_ID = LOCAL_CODE);