CROSS JOIN - 2개 이상의 테이블이 조인이 될때 WHERE 절에 의해 공통으로 결합이 발생하지 않는 경우

EX) SELECT * FROM EMP,DEPT;

EQUI JOIN - 조인대상이 되는 두테이블에서 공통적으로 존재하는 컬럼의 값이 일치되는행을 연결하여 결과 생성

EX) SELECT * FROM EMP, DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;

EX) SELECT E.ENAME, D.DNAME, E.DEPTNO, D.DEPTNO FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND E.ENAME='SCOTT';

NON-EQUI JOIN - 조인조건의 특정 범위 내에 있는지 조사하기위해 

EX) SELECT E.ENAME, D.DNAME, S.GRADE FROM EMP E,DEPT D, SALGRADE S

WHERE E.DEPTNO = D.DEPTNO AND E.SAL BETWEEN S.LOSAL AND S.HISAL;

SELF JOIN - 하나의 테이블 내에서 조인을 해야만 결과를 얻을수 있을때. 

EX) SELECT EMPLOYEE.ENAME || '의 매니저는' || MANAGER.ENAME || '입니다' FROM EMP EMPLOYEE, EMP MANAGER WHERE EMPLOYEE.MGR = MANAGER.EMPNO;

OUTER JOIN - 2개이상의 테이블이 조인딜때 한쪽테이블엔 데이터가 존재하는데 다른한쪽 테이블은 데이터가 존재하지 않을때

EX) SELECT EMPLOYEE.ENAME || '의 매니저는' || MANAGER.ENAME || '입니다' FROM EMP EMPLOYEE, EMP MANAGER WHERE EMPLOYEE.MGR = MANAGER.EMPNO(+);

EX) SELECT E.ENAME, D.DEPTNO, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO ORDER BY D.DEPTNO;

ANSI JOIN - ANSI 표준 SQL  조인구문은 몇 가지 새로운 키워드와 절을 제공하여 SELECT 문의 FROM 절에서 조인을 완벽하게 지정

ANSI CROSS JOIN - ANSI구문을 사용하면 다음에 , 없이 원하는 조인타입을 명확하게 지정

SELECT * FROM EMP CROSS JOIN DEPT;

ANSI INNER JOIN - 동일컬럼을 기준으로 조인하기 위한 EQUI JOIN을 ANSI조인에서는 ANSI조인에서는 FROM 다음에 INNER JOIN 이란 단어를 사요ㅣ

EX) X = SELECT ENAME, DNAME FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;

EX) SELECT ENAME,DNAME FROM EMP  INNER JOIN  DEPT ON EMP.DEPTNO -DEPT.DEPTNO;

EX) X = SELECT ENAME, DNAME FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO AND ENAME='SCOTT';

EX) SELECT ENAME, DNAME FROM EMP INNER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO WHERE ENAME = 'SCOTT';

USING - 이용한 조인 조건 지정하기

EX) SELECT EMP.ENAME, DEPT.DNAME FROM EMP INNER JOIN DEPT USING (DEPTNO);

NATURAL JOIN - JOIN문의 종결자.. 내부적으로 알아서 공통적인걸 찾아서 조인시켜줌..

SELECT ENAME, DNAME FROM EMP NATURAL JOIN DEPT;

ANSI OUTER JOIN - 기존 조인에서 레코드가 반드시 출력되어야 할때는 (+)를 표시해 주었다.. 하지만 ,ANSI 조인에서는 LEFT ,RIGHT ,FULL3가지를 지원한다. 

EX) SELECT * FROM DEPT01 LEFT OUTER JOIN DEPT2 ON DEPT01.DEPTNO = DEPT02.DEPTNO;

EX) SELECT * FROM DEPT01 RIGHT OUTER JOIN DEPT2 

ES) SELECT * FROM OUTER JOIN DEPT02 USING(DEPTNO);

'Oracle' 카테고리의 다른 글

오라클 테이블 구조 생성, 변경 및 삭제하는 DDL  (0) 2014.11.12
오라클 서브쿼리  (0) 2014.11.12
오라클 그룹으로 묶을때 조건문. HAVING  (0) 2014.11.12
오라클 GROUP BY  (0) 2014.11.12
오라클 그룹함수  (0) 2014.11.12
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,