by 구루비스터디 INNER JOIN JOIN NATURAL JOIN USING CROSS JOIN OUTER JOIN [2013.09.01]
STANDARD JOIN 기능 추가 (CROSS, OUTER JOIN 등 새로운 FROM 절 JOIN 기능들) - SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들 - ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능 - WINDOW FUNCTION 같은 새로운 개념의 분석 기능들
순수 관계 연산자는 관계형 데이터베이스를 구현하기 위해 새롭게 만들어진 연산자
SELECT A.DEPTNO, A.EMPNO, A.ENAME, B.DNAME
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO ;
위와 아래는 같은 결과를 반환하다.
SELECT A.DEPTNO, A.EMPNO, A.ENAME, B.DNAME
FROM EMP A INNER JOIN DEPT B
WHERE A.DEPTNO = B.DEPTNO ;
INNER를 생략할 수 있다.
SELECT A.DEPTNO, A.EMPNO, A.ENAME, B.DNAME
FROM EMP A JOIN DEPT B
WHERE A.DEPTNO = B.DEPTNO ;
SELECT DEPTNO, EMPNO, ENAME, DNAME
FROM EMP NATURAL JOIN DEPT ;
NATURAL은 식별자를 가질 수 없다. 또한 동일한 열에 대해서는 생략된다.
SELECT *
FROM DEPT JOIN DEPT_TEMP
USING (DEPTNO);
SELECT *
FROM DEPT JOIN DEPT_TEMP
USING (LOC, DEPTNO);
USING절에 명시된 컬럼이 기준이 되어 동일한 열들을 조인한다. 명시된 데이터가 앞에 나온다.
SELECT *
FROM DEPT JOIN DEPT_TEMP
USING (DEPTNO);
SELECT *
FROM DEPT JOIN DEPT_TEMP
USING (LOC, DEPTNO);
USING절에 명시된 컬럼이 기준이 되어 동일한 열들을 조인한다. 명시된 데이터가 앞에 나온다.
SELECT E.EMPNO, E.NAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO);
SELECT E.EMPNO, E.NAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO)
WHERE E.DEPTNO = 30;
SELECT E.EMPNO, E.NAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO AND E.DEPTNO = 30);
SELECT E.EMPNO, E.NAME, E.DEPTNO, D.DNAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO )
WHERE E.DEPTNO = 30;
같은 결과를 출력한다.
SELECT E.EMPNO, D.DEPTNO, D.DNAME, T.DNAME NEW_NAME
FROM EMP E JOIN DEPT D
ON (E.DEPTNO = D.DEPTNO)
JOIN DEPT_TEMP T
ON (E.DEPTNO = T.DEPTNO);
SELECT E.EMPNO, D.DEPTNO, D.DNAME, T.DNAME NEW_NAME
FROM EMP E ,DEPT D, DEPT_TEMP T
WHERE E.DEPTNO = D.DEPTNO
AND E.DEPTNO = T.DEPTNO;
같은 결과를 출력한다.
SELECT ENAME, DNAME
FROM EMP CROSS JOIN DEPT
ORDER BY ENAME;
SELECT *
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
SELECT *
FROM EMP E RIGHT OUTER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
SELECT *
FROM EMP E FULL OUTER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
이 때 OUTER는 생략가능하다.
SELECT *
FROM EMP E LEFT OUTER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO
UNION
SELECT *
FROM EMP E RIGHT OUTER JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
위의 쿼리와 동일한 결과를 출력한다.
- 강좌 URL : http://www.gurubee.net/lecture/2377
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.