22/12/28 [Database]

웰치스·2022년 12월 28일
0
post-thumbnail

22/12/28

✅ Oracle Software

1. SQL Plus

  • TUI 환경의 프로그램
  • SQL 구문을 입력/실행/결과를 볼수 있는 프로그램
  • DBA, 개발자가 사용함.

2. SQL Developer

  • GUI 환경의 프로그램
  • SQL 구문을 입력/실행/결과를 볼 수 있는 프로그램
  • 개발자가 사용함

📌 SQL Developer 사용법

  • 행 번호 표시하기


📌 6. JOIN

: 여러 테이블의 데이터를 한꺼번에 출력하는 문법

  • [기본 조인 문법] : On절 조인

역모델링(ERD)


(예제1) employees 테이블과 departments테이블을 사용해서
직원정보(employee_id, last_name, salary, department_id)와
직원이 소속된 부서이름(department_name)을 함께 출력하시오

select employee_id, last_name, salary, employees.department_id, department_name
from employees join departments
on employees.department_id = departments.department_id;

(== 밑에 버전이 더 좋은 성능)

select employees.employee_id, employees.last_name, employees.salary,
		employees.department_id, departments.department_name
from employees join departments
on employees.department_id = departments.department_id;

(==)

select e.employee_id, e.last_name, e.salary,
		e.department_id, d.department_name
from employees e join departments d
on e.department_id = d.department_id;

(예제2) employees 테이블과 departments 테이블을 사용해서
부서정보(department_id, department_name, manager_id)와
부서의 매니저 이름(last_name)을 함께 출력하시오.

select d.department_id, d.department_name, d.manager_id as "Mar_id", 
		e.last_name as "Mgr_name"
from departments d join employees e
on d.manager_id = e.employee_id;
(==)
select d.department_id, d.department_name, e.employee_id as "Mar_id", 
		e.last_name as "Mgr_name"
from departments d join employees e
on d.manager_id = e.employee_id;

(예제3) departments테이블과 locations 테이블을 사용해서
부서정보(department_id, department_name, location_id)와
부서의 위치정보(city, street_address)를 함께 출력하시오.

select d.department_id, d.department_name, d.location_id,
	l.city, l.street_address
from departments d join location l
on d.location_id = l.location_id;

(예제4) employees 테이블과 jobs테이블을 사용해서
직원정보(employee_id, last_name, salary, job_id)와
직원의 담당 업무명(job_title)을 함께 출력하시오.

select e.employee_id, e.last_name, e.salary, e.job_id, j.job_title
from employees e join jobs j
on e.job_id = j.job_id

N개 테이블 조인하기

(예제5) employees, departments, locations 테이블을 사용해서
직원정보(employee_id, last_name, salary, department_id)와
직원이 소속된 부서 정보(department_name, location_id)와
부서의 위치 정보(city, street_address)를 함께 출력하시오.

select e.employee_id, e.last_name, e.salary, e.department_id,
	d.department_name, d.location_id, l.city, l.street_address
from employees e join departments d
on e.department_id = d.department_id
join location l
on d.location_id = l.location_id;

(예제6) employees, jobs, departments 테이블을 사용해서
직원정보(employee_id, last_name, job_id)와 직원의 담당 업무명(job_title)과
직원이 소속된 부서정보(department_id, department_name)를 함께 출력하시오.

select e.employees_id, e.last_name, e.job_id, j.job_title,
	d.department_id, d.department_name
from employeees e join jobs j
on e.job_id = j.job_id
join departments d
on e.department_id =d.department_id;

Self-join(자체조인)

: 하나의 테이블을 마치 다른 테이블인듯 테이블 alias를 다르게 부여해서
자기 자신 테이블과 조인하는 유형

(예제7) employees 테이블로부터 직원의 정보(employee_id, last_name, manager_id)와
그 직원의 매니저 이름(last_name)을 함께 출력하시오.

select e1.employee_id, e1.last_name, e1.manager_id, e2.last_name
from employees e1 join employees e2
on e1.manager_id = e2.employee_id;

0개의 댓글

관련 채용 정보