Notice
Recent Posts
Recent Comments
Link
09-14 15:32
«   2025/09   »
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
Archives
Today
Total
관리 메뉴

study-project

오라클 테이블 join (1) 본문

DB/ORACLE

오라클 테이블 join (1)

귤식빵 2020. 9. 1. 21:54

오늘 정리할 oracle join 3개

natural join, using, on,

1. natural join

natural join은 join 하고자하는 2개의 테이블에 컬럼중 이름이같고 데이터 타입이 같은것만 할 수 있다.

동일한 이름을 가진 열이 서로 다른 데이터 유형을 가지면 오류난다.

select *from table natural join table2;

natural join에 부합하는 형식이 2개가 있다면 2개다 조합되어서 나온다.

2. using

여러 열의 이름이 동일하고 데이터 유형은 다른경우 using을 사용해서 열을 equijoin으로 지정한다.

using 절을 사용하면 두개 이상의 열이 일치하는 경우 하나의 열만 선택 할 수 있다. 

그리고 using절에서 참조하고있는 칼럼명에는 alias를 사용하면 안된다

USING 절의 열 부분은 식별자를 가질 수 없음.

using(department_id)를 사용했는데 select절에서 d. department_id 라고 사용했기 때문이다.

 

3. on절 사용하여 join 하기 

제일 많이 사용하는 유형이다.

using 절과 다르게 on이 참조하고있는 칼럼명에 alias를 사용해도 상관없다

그리고 select절에 사용한 컬럼들의 접두어가 없으면 오류가 생긴다.

공통으로 존재하는 컬럼에 alias가 없어서 그렇다. employee_id, last_name. 이렇게 적었기 때문이다.

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);

 

on절을 사용해서 3가지 테이블을 연결해서 데이터를 가져올 수 도  있다.

select employee_id,city,department_name
from employees e
join department d
on d.department_id = e.deaprtment_id
join locations l
on d.location_id =l.location_id;

on join절에 조건달기 

select e.employee_id,e.last_name,e.department_id,d.department_id,d.location_id
from employees e join department d
on (e.department_id = d.department_id)
where e.manager_id = 149;

employees 테이블과 department테이블을 조인해서 employee_id,last_name,department_id,location_id를 출력할건데

여기서 employees의 manager_id가 149인것만 출력하는 구문이다.

  natural join using join on join
칼럼명 = = 상관없음
데이터 타입 = 상관없음 상관없음

'DB > ORACLE' 카테고리의 다른 글

오라클 서브쿼리 사용법 (1)  (0) 2020.09.05
오라클 테이블 join (2)  (0) 2020.09.05
오라클 group by 절과 having 절  (0) 2020.08.30
오라클 - 단일행 함수 (2)  (0) 2020.08.30
오라클 sql 활용문제  (0) 2020.08.25
Comments