// 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 |