티스토리 뷰
1. ON 절을 이용한 JOIN
1 2 3 4 5 6 7 | -- 예전 문법 (실행 됨) SELECT e.employee_id, e.last_name, e.department_id, d.department_name FROM employees e, departments d WHERE e.department_id = d.department_id and e.employee_id > 200; | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -- 현재 문법 SELECT e.employee_id, e.last_name, e.department_id, d.department_name FROM employees e JOIN departments d ON ( e.department_id = d.department_id ) WHERE e.employee_id > 200; -- 예전 문법에서 현재 문법으로 변경된 이유 -- 쿼리문의 실행 속도를 생각해서 테이블명을 적는게 좋다. -- 안 적으면 FROM 절을 다 찾아본다. -- . : 보통 테이블의 첫 글자나 두세글자를 많이 한다 -- ON 절의 () : ()는 해도 그만 안 해도 그만. 자기 마음. | cs |
1 2 3 4 5 6 7 | -- 현재 문법 ( WHERE 절 빼고 실행해보기 ) SELECT e.employee_id, e.last_name, e.department_id, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id; | cs |
1 2 3 4 5 6 7 8 | SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e JOIN departments d ON e.department_id = d.department_id WHERE e.manager_id = 149; | cs |
2. ON 절을 사용한 Self-Join
ON 절을 사용한 Self-Join 또는 자체 join
Table Alias 필수. 안 하면 오라클이 햇갈려함. 햇갈리는데 많이 쓰임.
1 2 3 | SELECT worker.lat_name emp, manager.last_name mgr FROM employees worker JOIN employees manager ON ( worker.manager_id = manager.employee_id ); | cs |
연습 문제
1. employees 테이블과 departments 테이블을 조인하여 모든 사원의 정보와 함께 부서 정보를 함께 출력하시오.
출력형식 : employees | last_name | salary | department_id | department_name
1 2 3 4 5 6 7 | SELECT e.employee_id employees, e.last_name, e.salary, d.department_id, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id; | cs |
2. employees 테이블로부터 모든 사원의 last_name, employee_id, 매니저 이름, manager_id를 함께 출력하시오.
출력형식 : Employee | Emp# | Manger | Mgr#
(last_name) (employee_id) (매니저 이름) (manager_id)
1 2 3 4 5 6 7 8 9 10 | SELECT e1.last_name "Employee", e1.employee_id "Emp#", e2.last_name "Manager", e1.manager_id "Mgr#" FROM employees e1 JOIN employees e2 ON e1.manager_id = e2.employee_id; -- e1.manager_id == e1.employee_id -- e1.manager_id 자리에 e2.manager_id가 오면 안된다. -- e2.manager_id는 e1.manager_id의 매니저 e2.manger_id의 manager_id를 출력한다. | cs |
'부산 ITWILL 학원 실습 > ORACLE' 카테고리의 다른 글
[Oracle VM VirtualBox] GUI 툴 SQL Developer 실행하기 (0) | 2018.07.27 |
---|---|
[SQL 활용] 5. Subquery (0) | 2018.07.27 |
[SQL 활용] 3. GROUP BY절과 HAVING절 (0) | 2018.07.27 |
[Oracle VM VirtualBox] 외부 화면(바탕화면)으로 나가기 (0) | 2018.07.27 |
[SQL 활용] 2. WHERE(조건문)절과 ORDER BY(정렬)절 (0) | 2018.07.27 |