조인(JOIN):두 개 이상의 테이블간의 결합
1.내부 조인(INNER): 동일(EQUI)조인, 비동일(NON-EQUI)조인
-오라클 조인(오라클에서만 사용 가능)
SELECT ENAME,SAL,DEPT.DEPTNO,DNAME FROM EMP,DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO;
-표준 SQL 조인
SELECT E.ENAME, E.SAL, D.DEPTNO, D.DNAME
FROM EMP E INNER
JOIN DEPT D
ON E.DEPTNO=D.DEPTNO -- 조인 조건
WHERE E.ENAME='FORD'; -- 일반조건
-내부 조인(비동일 조인)
-> 비동일 조인이란? 동등비교를 사용하지 않는 조인을 말한다.
SELECT * FROM SALGRADE;
--사번,이름,급여,호봉
SELECT E.EMPNO,E.ENAME,E.SAL,S.GRADE
FROM EMP E INNER
JOIN SALGRADE S
ON E.SAL BETWEEN S.LOSAL AND S.HISAL;
->emp 테이블의 sal과 grade과 조인
--사원이름,급여,부서명,호봉을 출력
SELECT E.ENAME,E.SAL,S.GRADE, D.DNAME
FROM EMP E
JOIN SALGRADE S
ON E.SAL BETWEEN S.LOSAL AND S.HISAL
JOIN DEPT D
ON E.DEPTNO=D.DEPTNO
WHERE SAL>=1000;
-내부조인(SELF): 자기 자신과 조인
-사원이름, 상사이름 검색
SELECT E.ENAME, E.MGR,E2.ENAME
FROM EMP E
JOIN EMP E2
ON E.MGR=E2.EMPNO;
외부 조인(OUTER): LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN
--오라클 조인 : 조인 조건을 where절에 준다
SELECT E.ENAME 직원, M.ENAME 상사
FROM EMP E, EMP M
WHERE E.MGR=M.EMPNO(+);
--표준 조인
SELECT E.ENAME 직원, M.ENAME 상사
FROM EMP E
LEFT OUTER JOIN EMP M
ON E.MGR=M.EMPNO;
-사원이름, 부서이름 (직원이 없는 부서까지 출력)
SELECT E.ENAME, D.DNAME
FROM EMP E
RIGHT OUTER JOIN DEPT D
ON E.DEPTNO=D.DEPTNO;
--사원이름, 부서번호(단, 해당사원과 같은 부서에 근무하는 사원 검색)
--SELF 조인
SELECT E.ENAME 본인, E.DEPTNO 본인부서, C.ENAME 동료, C.DEPTNO 동료부서
FROM EMP E
JOIN EMP C
ON E.DEPTNO=C.DEPTNO
WHERE E.ENAME<>C.ENAME --본인 배제
ORDER BY E.ENAME;
'SQL' 카테고리의 다른 글
상관관계 서브쿼리 (0) | 2019.12.26 |
---|---|
서브쿼리 (0) | 2019.12.26 |
GROUP BY ,HAVING, ORDER BY 절, SELECT문 검색 순서 (0) | 2019.12.24 |
오라클 그룹함수(MAX,MIN,SUM,AVG ,COUNT) (0) | 2019.12.24 |
오라클의 ELSE-IF(DECODE 함수, CASE 함수) (0) | 2019.12.24 |