▶ 조인(JOIN) 이란
- 2개 이상의 테이블에 있는 컬럼들을 합쳐서 가상의 테이블을 만들어 조회하는 방식을 말한다.
- 소스테이블 : 내가 먼저 읽어야 한다고 생각하는 테이블
- 타겟테이블 : 소스를 읽은 후 소스에 조인할 대상이 되는 테이블
- 각 테이블을 어떻게 합칠지를 표현하는 것을 조인 연산이라고 한다.
- 조인 연산에 따른 조인종류 : Equi join , non-equi join
▶ 조인의 종류
- Inner Join
- 양쪽 테이블에서 조인 조건을 만족하는 행들만 합친다. - Outer Join
- 한쪽 테이블의 행들을 모두 사용하고 다른 쪽 테이블은 조인 조건을 만족하는 행만 합친다. 조인조건을 만족하는 행이 없는 경우 NULL을 합친다.
- 종류 : Left Outer Join, Right Outer Join, Full Outer Join - Cross Join
- 두 테이블의 곱집합을 반환한다.
▶ 조인 문법
- ANSI 조인 문법
- 표준 SQL 문법
- 오라클은 9i 부터 지원.
- 오라클 조인 문법
- 오라클 전용 문법이며 다른 DBMS는 지원하지 않는다.
▶ inner join : ANSI 조인 구문
FROM 테이블a INNER JOIN 테이블b ON 조인조건
- inner는 생략 할 수 있다.
ex)
select e.emp_id, e.hire_date, d.dept_name -- 양쪽에 다있는 애들은 앞에 e,d생략가능 but 조인할때는 해주는게 좋음!
from emp e inner join dept d on e.dept_id = d.dept_id; --테이블 명에 별침주는 것 가능
▶ 오라클 조인
- Join할 테이블들을 from절에 나열한다.
- Join 연산은 where절에 기술한다.
ex)
select e.emp_id, e.emp_name, to_char(e.hire_date,'yyyy') as hire_date, d.dept_name
from emp e, dept d
where e.dept_id = d.dept_id;
▶ Self 조인
- 물리적으로 하나의 테이블을 두개의 테이블처럼 조인하는 것.
▶ 아우터 조인 (Outer Join)
- 불충분 조인 (조인 연산시 한쪽의 행이 불충분 해도 붙이도록)
- 소스(완전해야하는테이블)가 왼쪽이면 left join, 오른쪽이면 right join 양쪽이면 full outer join
- ANSI 문법
from 테이블a [LEFT | RIGHT | FULL] OUTER JOIN 테이블b ON 조인조건
- OUTER는 생략 가능.
- 오라클 JOIN 문법
- FROM 절에 조인할 테이블을 나열
- WHERE 절에 조인 조건을 작성
- 타겟 테이블에 (+) 를 붙인다.
- FULL OUTER JOIN은 지원하지 않는다.
- OUTER는 생략 할 수 있다.
ex)
select e.emp_id, e.emp_name, e.salary, d.dept_name, d.loc
from emp e left join dept d on e.dept_id = d.dept_id
where e.emp_id = 175
order by d.dept_name desc;
728x90
반응형
'SQL & DB > Oracle' 카테고리의 다른 글
[SQL] DML / DDL (0) | 2020.06.10 |
---|---|
[SQL] 서브쿼리(Sub Query), 집합연산자(결합쿼리) (0) | 2020.06.10 |
[SQL] 함수/집계함수(Having, Groupby) (0) | 2020.06.09 |
[SQL] Basic (0) | 2020.05.27 |