티스토리 뷰
190403
SQL의 가장 핵심이라고 볼 수 있는 조인(join)입니다.
* SQL에서 --은 주석처리입니다.
* 주석처리 행은 설명,--가 없는 행은 소스라고 보시면 되겠습니다.
<조인 JOIN>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | -- 조인(Join) -- 테이블의 조인 -- 조회할 데이터가 2개 이상의 테이블을 사용해야지만 획득되는 경우 테이블의 조인을 사용한다. -- 조인 방법 -- from절에 데이터 획득에 필요한 테이블을 나열하기만 하면 된다. -- 조인조건을 제공해야 된다.(n개의 테이블을 조인하면 n-1개의 조인조건이 있어야 한다.) -- 조인조건은 조인된 행들 중에서 의미있게 연결된 행만 선택하게 한다. -- select * -- from EMPLOYEES, DEPARTMENTS -- where employees.department_id = department.department_id; -- 사원의 아이디, 사원의 이름, 부서아이디, 부서이름으로 조회하기 select e.employee_id, e.first_name, e.department_id, d.department_id from EMPLOYEES e, DEPARTMENTS d -- 조인 where e.DEPARTMENT_ID = d.DEPARTMENT_ID; -- 조인조건 -- 사원의 아이디, 사원이름, 직종아이디, 급여, 직종제목, 직종최저급여, 직종최고급여 조회하기 -- { employee } { jobs 테이블 } select e.employee_id, e.first_name, e.JOB_ID, e.salary, j.JOB_TITLE, j.min_salary, j.max_salary from EMPLOYEES e, JOBS j where e.JOB_ID = j.JOB_ID; -- 사원의 아이디, 사원이름, 직종아이디, 급여, 직종제목, 직종최저급여, 직종최고급여 조회하기 -- 단, 직종 최저급여가 3000달러 미만인 정보만 조회하기 select e.employee_id, e.first_name, e.JOB_ID, e.salary, j.JOB_TITLE, j.min_salary, j.max_salary from EMPLOYEES e, JOBS j where e.JOB_ID = j.JOB_ID and j.min_salary < 3000; -- 검색조건 -- 사원의 아이디, 사원이름, 부서이름을 조회하기 -- (단, 100번 사원이 부서담당자로 지정된 부서에 소속된 사원만 조회하기) -- 사원의 아이디, 사원이름, 부서이름, 부서담당자 -- { employees } { department } select e.employee_id, e.first_name, d.department_name from EMPLOYEES e, DEPARTMENTS d where e.DEPARTMENT_ID = d.DEPARTMENT_ID and d.MANAGER_ID = 100; -- 부서아이디, 부서명, 그 부서가 위치한 지역의 도시명을 조회하기 -- { departments } { locations } select d.department_id, d.department_name, l.city from DEPARTMENTS d, LOCATIONS l where d.LOCATION_ID = l.LOCATION_ID; -- 부서아이디, 부서명, 부서 담당자 아이디, 부서 담당자(사원)의 이름, 부서 담당자(사원)의 연락처를 조회하기 -- { departments } { employees } select d.department_id, d.department_name, d.MANAGER_ID, e.first_name, e.phone_number from DEPARTMENTS d, EMPLOYEES e where d.DEPARTMENT_ID = e.DEPARTMENT_ID and d.manager_id = e.employee_id; -- 급여를 15000달러 이상 받는 사원들의 아이디, 사원이름, 급여, 소속부서 아이디, 소속부서명을 조회하기 -- { employees } {departments} select E.employee_id, E.salary, E.department_id, D.department_name from EMPLOYEES E, DEPARTMENTS D where E.department_id = D.DEPARTMENT_ID and E.SALARY >= 15000; -- 직종 최저급여가 10000달러 이상인 직종에 근무중인 -- {jobs} -- 사원의 아이디, 사원의 이름, 직종 아이디, 직종제목 조회하기 -- {employees } {jobs } select E.employee_id, E.first_name, E.job_id, J.job_title from EMPLOYEES E, JOBS J where E.JOB_ID = J.JOB_ID and J.MIN_SALARY >= 10000; -- 사원의 아이디, 사원이름, 직종아이디, 직종제목, 소속부서 아이디, 소속부서명 조회하기 -- { employees } { jobs } { departments } select E.employee_id, E.first_name, E.job_id, J.job_title, D.department_id, D.department_name from EMPLOYEES E, JOBS J, DEPARTMENTS D where E.JOB_ID = J.JOB_ID and E.DEPARTMENT_ID = D.DEPARTMENT_ID; | cs |
현재 사용되는 Employees, Departments 등의 테이블들의 전체 E-R다이어그램입니다.
금일 배운 조인 JOIN을 응용한 과제와 정답입니다.
'Programming > Database' 카테고리의 다른 글
Database #5 SQL : 비등가조인 & 셀프조인 & 그룹함수(다중행함수) (0) | 2019.04.16 |
---|---|
Database #3 SQL : 논리연산자 & 내장함수 (0) | 2019.04.02 |
Database #2 SQL : SELECT문 (0) | 2019.04.02 |
Database #1. < Database & QueryBox 설치 > (0) | 2019.04.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 국비
- 중앙HTA
- 블록엘리먼트
- 태그
- 자바 독학
- spring
- block element
- 자바
- API
- querybox
- jhta
- Class
- 이클립스
- copotter
- Oracle
- 자바 국비
- 프레임워크
- 브라캣
- Database
- 스프링
- sql
- 자바 기초
- 비등가조인
- 강제형변환
- 데이터베이스
- h#
- inline element
- 인라인엘리먼트
- 오라클 문법
- html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함