반응형
오라클(Oracle) 조인(JOIN) 문법
INNER JOIN
- 일반적인 조인시 , 를 생략하고 INNER JOIN 을 추가하고 WHERE 절 대신 ON 절을 사용해야 한다.
- INNER 는 생략이 가능하다.
1
2
3
4
5
|
-- INNER JOIN 사용
SELECT E.EMPNO, E.ENAME FROM DEPT D INNER JOIN EMP E ON D.DEPTNO = E.DEPTNO;
-- 일반적인 SQL
SELECT E.EMPNO, E.ENAME FROM DEPT D, EMP E WHERE D.DEPTNO = E.DEPTNO;
|
cs |
NATURAL JOIN
- Equi-Join 과 동일하다.
- 두 테이블의 동일한 이름을 가지는 컬럼(column) 은 모두 조인이 된다.
- 동일한 컬럼을 내부적으로 검색하게 되므로 테이블 Alias 를 주면 오류가 발새안다.
- 동일한 컬럼이 2개 이상인 경우 JOIN-USING 문장으로 조인(JOIN)되는 컬럼(column) 을 제어할 수 있다.
1
2
3
4
5
|
-- NATURAL JOIN 사용
SELECT EMPNO, ENAME, DEPTNO FROM EMP NATURAL JOIN DEPT;
-- Oralce9i 이전 SQL
SELECT E.EMPNO, E.ENAME, D.DEPTNO FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO;
|
cs |
JOIN ~ USING
- NATURAL JOIN 의 단점을 동일한 일므을 가지는 컬럼(column) 은 모두 조인(JOIN) 되는데 USING 문을 사용하면 컬럼을 선택하여 조인할 수 있다.
- USING 절 안에 포함되는 컬럼에 Alias 를 지정하명 오류가 발생하다.
1
2
|
-- 일반적인 사용
SELECT E.EMPNO, E.ENAME, DEPTNO FROM EMP E JOIN DEPT D USING(DEPTNO);
|
cs |
ON 구문
- 조인(JOIN) 조건을 지정할 수 있다.
- 모든 논리연산 및 서브쿼리를 지정할 수 있다.
1
2
3
4
5
6
7
|
-- 테스트를 위해 아래 INSERT 먼저 실행할 ㅓㅅ
INSERT INTO BONUS(ENAME, JOB, SAL) VALUES('SMITH', 'CLERK', 500);
-- ON절 사용 예제
SELECT E.EMPNO, E.ENAME, E.SAL FROM EMP E JOIN DEPT D ON (E.DEPTNO = D.DEPTNO)
JOIN BONUS B ON (B.ENAME = E.ENAME)
WHERE E.SAL IS NOT NULL;
|
cs |
반응형
'DBMS > Oracle' 카테고리의 다른 글
[Oracle] SQL 튜닝_2. DBMS 아키텍처 (0) | 2019.11.23 |
---|---|
[Oracle] SQL 튜닝_1. 데이터 처리방식에 따른 성능 (0) | 2019.11.16 |
[Oracle] 오라클(Oracle) DB 계정 생성 및 삭제 권한부여 비밀번호 변경 방법 (0) | 2019.02.18 |
[Oracle] 오라클(Oracle) 설치 및 다운로드(Download) (0) | 2019.02.18 |
[Oracle] Oracle vs MySQL (0) | 2018.08.24 |
최근댓글