oracle JOIN 먹고살기/Oracle 2011. 4. 5. 08:44

 JOIN

JOIN 이란?

하나 이상의 테이블로부터 Data를 질의하기 위해서 사용됩니다.
Join조건은 WHERE절에서 기술합니다

사용 형식 :

SQL> SELECT table1.column, table2.column ….
2>
FROM table1, table2,….
3>
WHERE join조건문;

종류

Equijoin Join하고자 하는 두개의 테이블에 같은 컬럼이 있을 때 사용 P.K.와 F.K.와의 관계에서 얻어짐
Non-Equijoin Join하고자 하는 테이블이 직접적 관계가 없는 경우 WHERE절에서 ‘=’가 아닌 다른 연산자를 통해서 얻어짐
Outer join 관계가 있는 테이블을 질의할 경우 결과에 나타나지 않는 행들까지 얻고자 할 때
Self join 테이블 자체내에서 조인할 경우

  • Equijoin

보통 P.K.와 F.K. 관계가 있는 테이블에서 ‘=’ 연산자를 통해서 서로 다른 두개의 테이블을 조인합니다.
SQL> SELECT table1.column, table2.column ….
2> FROM table1, table2,….
3> WHERE table1.column= table2.column ;


SQL> select dept.deptno, emp.empno
2> from dept, emp
3> where dept.deptno=emp.deptno
4> order by 1;

    • Column과 Table에서의 Alias

SQL> select d.deptno, e.empno
2> from dept d, emp e
3> where d.deptno=e.deptno;

    • WHERE절에서의 추가조건

WHERE절에서의 조건문은 하나 이상 기술할 수 있습니다.

SQL> SELECT table1.column, table2.column , tacle3.column….
2> FROM table1, table2, table3….
3> WHERE table1.column= table2.column
4> AND table2.column=table3.column
5> OR …………………………………..;

  • Non-Equijoin

조인하고자 하는 테이블에 직접적인 관계가 없는 상황일 때 WHERE절에서 ‘=’가 아닌 다른 연산자를 통해서 검색을 하는 경우.

SQL> SELECT e.empno, e.ename, e.sal, g.grade
2> FROM emp e, salgrade g
3> WHERE e.sal BETWEEN g.losal AND g.hisal;

  • Outer Join

Equijoin과 비슷하나 결과는 만족하는 행뿐만 아니라 만족하지 않은 행까지도 보기 위해서 사용하는

조인방법을 말합니다.



SQL> select e.deptno, e.ename, d.dname
2> from emp e, dept d
3> where e.deptno(+)=d.deptno;

  • Self Join

Equijoin과 비슷하나 F.K.가 참조하는 P.K.가 같은 테이블에 있을 때 사용하는 방법입니다


SQL> select DISTINCT m.mgr, e.ename
2> fro emp e, emp m
3> where e.empno=m.mgr;


[출처] oracle JOIN|작성자 빠드루가

'먹고살기 > Oracle' 카테고리의 다른 글

Database Link사용법  (0) 2011.04.05
사용자 세션의 강제 종료  (0) 2011.04.05
oracle exp/imp  (0) 2011.04.05
Tablespace  (0) 2011.03.30
OCP  (0) 2011.03.18