JOIN
- CARTESIAN PRODUCT
- EQUI JOIN
- NON-EQUI JOIN
- SELF JOIN
- OUTER JOIN
CARTESIAN PRODUCT (카티션 프로덕트 / 카티션 곱)
- 두 개 이상의 테이블이 조인될 때, WHERE 절에 조건이 지정되지 않아 전체 행이 대응되는 것.
- 의미가 없는 값이 출력된다.
동등 조인 : EQUI JOIN
- 대상 테이블에서 속성의 값이 같은 열끼리 대응시킨다.
- 가장 많이 사용하는 방법이다.
SELECT * FROM emp, dept
WHERE emp.deptno = dept.deptno;
SELECT ename, dname FROM emp, dept
WHERE emp.deptno = dept.deptno AND emp.ename = 'SCOTT' ;
-
유의: SELECT에 두 테이블에 함께 존재하는 컬럼 이름을 넣게 되면, "ORA-00918: 열의 정의가 애매합니다" 오류가 뜬다.
-
별칭 : FROM 테이블 별칭 포맷으로 사용 가능하다. 해당 쿼리 안에서는 꼭 별칭 사용을 해 줘야 한다.
비등가 조인 : NON-EQUI JOIN
동일 컬럼 없이 다른 조건을 이용해서 조인하는 방법.
- 동등 조인은 JOIN 조건에 서로 같은 데이터를 가진 데이터를 JOIN해서 가지고 온다.
- 그러나, 비등가 조인은 산술 연산자 등을 이용하여 해당 값과 같거나, 큰 경우 JOIN해서 가지고 온다.
SELECT ename, sal, grade
FROM emp, salgrade
WHERE sal BETWEEN losal AND hisal;
-
활용: emp, dept, salgrade 테이블을 이용하여 직원 이름, 부 이름, 등급을 출력하는 쿼리문을 만드시오.
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
- 하나의 테이블을 가지고 조인
- 테이블 이름이 같기 때문에 별칭 지정이 꼭 필요하다.
외부 조인: OUTER JOIN
- WHERE 절의 조인 조건에 만족하지 않더라도, 해당 행을 결과 값에 출력하는 기법
- 어느 한 테이블에는 존재하는 데이터가 다른 테이블에 존재하지 않는다면, 매칭되지 못한 데이터가 출력되지 않는 현상을 해결하기 위해 사용되는 방법이다.
- 존재하지 않는 테이블을 WHERE 조건정에 추가할 때 (+)를 붙여 표현해 줌으로서 해당 데이터가 출력되도록 한다.
SELECT employee.ename|| '의 매니저는 '|| manager.ename||'입니다.'
FROM emp employee, emp manager WHERE employee.mgr = manager.empno;
SELECT employee.ename|| '의 매니저는 '|| manager.ename||'입니다.'
FROM emp employee, emp manager WHERE employee.mgr = manager.empno(+);
SELECT * FROM emp WHERE deptno=40;
SELECT e.ename, e.deptno, d.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno(+) = d.deptno;
'자린고비 독학하기 > 자린고비 코딩하기' 카테고리의 다른 글
SQL - DML (0) | 2019.08.01 |
---|---|
SQL - DATA DICTIONARY VIEW (0) | 2019.08.01 |
SQL - 그룹 함수 / GROUP BY / HAVING (1) | 2019.07.31 |
SQL - NVL / DECODE / CASE (0) | 2019.07.31 |
"NULL"은 무엇인가? (0) | 2019.07.31 |