-- 직원 테이블 조회
SELECT *
FROM EMPLOYEES e;
-- 부서 테이블 조회
SELECT *
FROM DEPARTMENTS d;
-- 부서번호 50인 부서 조회
SELECT *
FROM DEPARTMENTS d
WHERE DEPARTMENT_ID = 50;
설명:
첫 번째 쿼리는 EMPLOYEES 테이블의 모든 데이터를 조회합니다.
두 번째 쿼리는 DEPARTMENTS 테이블의 모든 데이터를 조회합니다.
세 번째 쿼리는 DEPARTMENTS 테이블에서 부서번호가 50인 부서만을 조회합니다.
-INNER JOIN: 특정 부서의 직원 조회
SQL 코드 :
-- INNER JOIN 사용 예제
SELECT e.EMPLOYEE_ID, e.FIRST_NAME, d.DEPARTMENT_ID, d.DEPARTMENT_NAME
FROM EMPLOYEES e INNER JOIN DEPARTMENTS d
ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
WHERE d.DEPARTMENT_ID = 80
ORDER BY e.EMPLOYEE_ID;
설명:
EMPLOYEES 테이블과 DEPARTMENTS 테이블을 DEPARTMENT_ID를 기준으로 조인합니다.
부서번호가 80인 부서에 속하는 직원들의 ID, 이름, 부서 ID, 부서 이름을 조회합니다.
결과는 직원 ID 기준으로 정렬됩니다.
SQL 코드 :
-- 3개 테이블을 INNER JOIN으로 결합
SELECT e.EMPLOYEE_ID, e.FIRST_NAME, d.DEPARTMENT_ID, d.DEPARTMENT_NAME,
l.LOCATION_ID, l.STREET_ADDRESS, l.CITY
FROM EMPLOYEES e
INNER JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
INNER JOIN LOCATIONS l ON d.LOCATION_ID = l.LOCATION_ID
WHERE l.CITY = 'Seattle';
설명:
EMPLOYEES, DEPARTMENTS, LOCATIONS 테이블을 각각 DEPARTMENT_ID와 LOCATION_ID를 기준으로 조인합니다.
'Seattle' 도시에 위치한 부서에 속하는 직원들의 정보(직원 ID, 이름, 부서 ID, 부서 이름, 위치 ID, 주소, 도시)를 조회합니다.
SQL 코드 :
-- LEFT OUTER JOIN 사용 예제
SELECT e.EMPLOYEE_ID, e.FIRST_NAME, d.DEPARTMENT_ID, d.DEPARTMENT_NAME
FROM EMPLOYEES e
LEFT OUTER JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
ORDER BY e.EMPLOYEE_ID;
설명:
EMPLOYEES 테이블의 모든 직원과 해당 직원이 속한 부서의 정보를 조회합니다.
부서가 없는 직원도 포함됩니다.
결과는 직원 ID 기준으로 정렬됩니다.
-RIGHT OUTER JOIN: 부서와 직원 정보 조회
-- RIGHT OUTER JOIN 사용 예제
SELECT e.EMPLOYEE_ID, e.FIRST_NAME, d.DEPARTMENT_ID, d.DEPARTMENT_NAME
FROM DEPARTMENTS d
RIGHT OUTER JOIN EMPLOYEES e ON d.DEPARTMENT_ID = e.DEPARTMENT_ID
ORDER BY e.EMPLOYEE_ID;
설명:
DEPARTMENTS 테이블과 EMPLOYEES 테이블을 DEPARTMENT_ID를 기준으로 조인합니다.
모든 직원과 해당 직원이 속한 부서의 정보를 조회합니다.
부서 정보가 없는 직원도 포함됩니다.
결과는 직원 ID 기준으로 정렬됩니다.
FULL OUTER JOIN: 직원과 부서의 모든 정보 조회
sql
코드 복사
-- FULL OUTER JOIN 사용 예제
SELECT e.EMPLOYEE_ID, e.FIRST_NAME, d.DEPARTMENT_ID, d.DEPARTMENT_NAME
FROM EMPLOYEES e
FULL OUTER JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
ORDER BY e.EMPLOYEE_ID;
설명:
EMPLOYEES 테이블과 DEPARTMENTS 테이블을 DEPARTMENT_ID를 기준으로 조인합니다.
모든 직원과 모든 부서의 정보를 조회합니다.
직원이 소속된 부서가 없는 경우와 부서에 소속된 직원이 없는 경우 모두 포함됩니다.
결과는 직원 ID 기준으로 정렬됩니다.