-
조인
두 개 이상의 테이블을 연결하여 하나의 테이블처럼 결과를 출력할 때 사용하는 방식
FROM 절에 여러 개의 테이블 지정 가능
SELECT * FROM EMP, DEPT ORDER BY EMPNO;
데카르트 곱(카테시안 곱: Cartesian product). cross join 혹은 교차조인이라고 함.
FROM 절에 명시 된 테이블의 조합 결과에 WHERE 절을 사용해 출력 기준을 지정
테이블에 Alias를 지정하여, 테이블 이름을 간결하게 사용
SELECT * FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO ORDER BY EMPNO;
등가조인(equi join)
테이블 연결 후 출력 행을 특정 열에 일치한 데이터를 기준으로 선정하는 방식
내부조인(inner join) 혹은 단순 조인(simple join) 이라고도 함
가장 많이 쓰이는 조인 방법
WHERE절의 조건식을 사용하여 테이블 조인 시 반드시 각 테이블을 연결하는 조건식이 최소한 전체 테이블 수 보 다 하나 적은 수 만큼은 있어야 함
SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME, D.LOC FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO ORDER BY EMPNO;
비등가조인(non-equi join)
등가 조인 방식 외의 방식
특정 열이 일치하지 않는 경우 다른 방식으로 사용이 가능
SELECT * FROM EMP E, SALGRADE S WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL
자체조인(self join)
하나의 테이블을 여러 개의 테이블처럼 활용하여 조인하는 방식
SELECT E1.EMPNO, E1.ENAME, E1.MGR, E2.EMPNO AS MGR_EMPNO, E2.ENAME AS MGR_ENAME FROM EMP E1, EMP E2 WHERE E1.MGR = E2.EMPNO;
외부 조인(outer join)
조인 기준 열의 어느 한쪽이 NULL이어도 강제 출력하는 방식
왼쪽 외부 조인(Left outer join) WHERE TABLE1.COL1 = TABLE2.COL1(+) 오른쪽 외부 조인(Right outer join) WHERE TABLE1.COL1(+) = TABLE2.COL1 SELECT E1.EMPNO, E1.ENAME, E1.MGR, E2.EMPNO AS MGR_EMPNO, E2.ENAME AS MGR_ENAME FROM EMP E1, EMP E2 WHERE E1.MGR = E2.EMPNO(+) ORDER BY E1.EMPNO; --------------------------------------------------- SELECT E1.EMPNO, E1.ENAME, E1.MGR, E2.EMPNO AS MGR_EMPNO, E2.ENAME AS MGR_ENAME FROM EMP E1, EMP E2 WHERE E1.MGR(+) = E2.EMPNO ORDER BY E1.EMPNO;
벤 다이어그램으로 표현한 조인
'개발 > DB' 카테고리의 다른 글
DB_Oracle,SQL 날짜형 함수, NULL 처리 함수 (0) 2021.11.08 DB_Oracle,SQL ANSI JOIN(SQL-99 표준문법 조인), JOIN ~ ON, OUTER JOIN (0) 2021.11.08 DB_Oracle,SQL Having, ROLLUP, CUBE, GROUPING SETS, LISTAGG ~ WITHIN GROUP, PIVOT, UNPIVOT (0) 2021.11.05 DB_Oracle 서브쿼리, 단일행/다중행 서브쿼리, 인라인 뷰, 스칼라 서브쿼리 (0) 2021.11.04 DB_Oracle,SQL 롤(ROLE), 롤 부여 순서, 롤 데이터 사전, 롤 로직 (0) 2021.09.27 댓글 (비로그인 댓글 허용하지 않습니다.)