- 오라클 11g XE 버전입니다
- 오라클 샘플 계정 HR에 접속한 후 진행했습니다 ( 아래 참고 )
> https://hongdori2.tistory.com/4
0. join
join은 2개의 테이블을 합치는 것입니다
union같은 집합 연산자는 동일 컬럼에서 행을 더하지만 join은 동일 행에서 컬럼이 더 늘어납니다
from table1, table2
에서 table1이 10개의 행, table2이 10개의 행을 가지고 있다면 from table1, table2 는
table1과 table2의 컬럼을 가진 10*10 = 100개의 행을 가진 table이 됩니다
- from table1 a, table2 b; 처럼 table에 별칭을 붙여줄 수 있습니다. 앞의 경우 a = table1, b = table2가 됩니다
2. 등가 조인 ( equi join or inner join )
: 등가 조건을 사용해 열을 불러오는 것입니다. where에 등가표현 '='이 들어갑니다
select 컬럼
from 테이블1, 테이블2
where 테이블1.컬럼1 = 테이블2.컬럼1
예시)
select first_name 사원명, department_name 부서명
from employees e, departments d
where e.department_id = d.department_id;
> department_id 라는 공통열을 가진, employees, departments 테이블에서
employees 테이블의 first_name 컬럼과 departments 테이블의 department_name 컬럼을 출력
- join 주에 등가 join이 가장 많이 쓰입니다
3. 비등가 조인 ( nonequi join )
: 등가표현을 외 다른 조건식을 사용해 불러오는 것입니다.
예시)
select first_name 사원명, salary 급여, grade 급여등급
from employees, salgrade
where salary between lowsalary and hisalary;
> employees의 salary 컬럼 값이 salgrade의 lowsalary 와 hisalary 컬럼 값 사이에 있는 열만 불러옵니다
- 공통되는 컬럼이 없기때문에 <테이블.컬럼> 형식을 쓰지 않아도 인식합니다
4. 자체 조인 ( self join )
: 자기 테이블을 복제해 join 하는 방법입니다. 별칭을 이용합니다.
예시)
select me.employee_id, me.first_name, me.manager_id, manager.employee_id, manager.first_name
from employees me, employees manager
where me.manager_id = manager.employee_id;
> me테이블의 상사 사번 컬럼 manager_id 와, manager 테이블의 사번 컬럼과 이름인 employee_id, first_name를 연결
5. 외부 조인 ( outer join )
: 컬럼 값의 종류가 적은곳에 (+)로 해당 컬럼 외 다른 컬럼값이 null인 행을 추가해 없는 빈 컬럼값의 행을 생성합니다.
예시)
select first_name, department_name
from employees e, departments d
where e.department_id(+) = d.department_id;
> departments 테이블에는 존재하지만 employees 테이블에는 없는 department_id 값이 있습니다
(+) 표현을 통해 employees 테이블에 없지만 departments에는 있는 department_id를 first_name 이 null인 값으로
employees 테이블에 생성합니다
'DB > Oracle' 카테고리의 다른 글
[Oracle] 오라클 테이블 생성, 수정, 삭제 - DQL, DML, DDL, TCL (0) | 2020.06.02 |
---|---|
[Oracle] 오라클 테이블 조회 11(완) - 오라클 서브쿼리, any, all, rownum (0) | 2020.06.01 |
[Oracle] 오라클 테이블 조회 9 - 다중행 함수, group by, having, sum, avg, max, min, count (0) | 2020.05.31 |
[Oracle] 오라클 테이블 조회 8 - 조건 함수, decode, case (0) | 2020.05.31 |
[Oracle] 오라클 테이블 조회 7 - 변환 함수, null 함수, to_number, to_char, to_date, nvl (0) | 2020.05.31 |
댓글