// Join 정리_______________________________________________________________________//

- join은 초급단계에서는 inner join , left-outer-join 이 두가지만 알면 된다.

- 조인이란 테이블을 합치는 것



select * from sawon;

select * from sawon, dept;


-- inner join --

select * from sawon,dept where sawon.deptno=dept.deptno

select * from sawon inner join dept on sawon.deptno=dept.deptno



--left outer join --

--(+)는 null값까지 출력한다는 의미 (오라클 전용 문법이다)

-- (+)는 left outer join을 의미한다.

-- 문장의 의미 : s1.samgr과 s2.sabun(+)이 같은 것을 출력해라. 

select * from sawon s1,sawon s2 where s1.samgr=s2.sabun(+)

order by s1.sabun


select * from sawon,gogek where sawon.sabun = gogek.godam(+)

order by sabun






// 강의 내용________________________________________________________________________//


JOIN: 테입블 결합

: 정규화(테이블분리)된 테이블 사용


[조건체크 형태]

EQUI-JOIN

: 필드 = 필드


NON-EQUI-JOIN

: All ,Some,Any,...

  필드 some(값1,값2,값3)

  필드 ALL (값1,값2,값3)



[조인방식 따른]

--cross join : 모든행을 결합


select * from sawon,dept

[ANSI-92]

select * from sawon cross join dept


--inner join : 두테이블간 만족하는 행만 결합

select * from sawon,dept where sawon.deptno=dept.deptno

[ANSI-92]

select * from sawon inner join dept on sawon.deptno=dept.deptno


--outer join : 조건이 null인 데이터를 결합하지 않는다...

 1) left  outer join :  A left outer join B on 조건 => A행은 모두추출 / B행은 만족하는행만

 2) right outer join :  B right outer join A on 조건

  

--self join : 자신의 테이블과 결합

-- left outer join(oracle (+))   cf) ms-sql : s1.samgr *= s2.sabun

-- oracle에서만 사용되는 문버

select * from sawon s1,sawon s2 where s1.samgr=s2.sabun(+)

order by s1.sabun


[ANSI-92]

select * from  sawon s1 left outer join sawon s2 on s1.samgr=s2.sabun


--사원이 관리하는 고객정보 출력(사원정보는 모두보겠다)

select * from sawon,gogek where sawon.sabun = gogek.godam(+)

order by sabun


[ANSI-92]

'Programming > Oracle' 카테고리의 다른 글

SQL 강좌  (0) 2013.09.02
[SQL] IN, AS 구문 정리  (0) 2013.08.30
오라클에 JDBC 접근 가장 기초 틀 예문  (0) 2013.08.28
[4일차-2] select_연산자_함수  (0) 2013.08.27
[4일차-1] SubQuery(하위쿼리)  (0) 2013.08.27

+ Recent posts