-
[Oracle] 조인(Join)RDS/Oracle 2019. 3. 10. 00:24반응형
조인(Join)
두 개 이상의 테이블 들을 연결하여 데이터를 출력하는 것을 JOIN이라고 하며, WHERE 절의 JOIN 조건에 대해서 EQUI JOIN과 Non EQUI JOIN으로 구분할 수 있습니다.
EQUI JOIN
EQUI(등가) JOIN은 두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법으로 대부분 PK <-> FK의 관계를 기반으로 합니다. 그러나 일반적으로 테이블 설계 시에 나타난 PK <-> FK의 관계를 이용하는 것이지 반드시 PK <-> FK의 관계로만 EQUL JOIN이 성립하는 것은 아닙니다.
JOIN의 조건은 WHERE 절에 기술하게 되는데 "=" 연사자를 사용해서 표현합니다.
EQUI JOIN의 대략적인 형태
1234SELECT 테이블1.컬럼명, 테이블2.컬러명, ...FROM 테이블1, 테이블2WHERE 테이블1.컬럼명1 = 테이블2.컬럼명2;cs -> WHERE 절에 JOIN 조건을 넣습니다.
EQUI JOIN의 ANSI/ISO SQL 표준 방식
1234SELECT 테이블1.컬럼명, 테이블2.컬러명, ...FROM 테이블1 INNER JOIN 테이블2ON 테이블1.컬러명1 = 테이블2.컬럼명2;cs -> ON 절에 JOIN 조건을 넣습니다.
예제01) 사원들의 이름, 부서번호, 부서이름을 출력하세요.
12345SELECT E.ENAME, D.DEPTNO, D.DNAMEFROM EMP E, DEPT DWHERE E.DEPTNO = D.DEPTNO;cs NON EQUI JOIN
Non EQUI(비등가) JOIN은 두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하지 않는 경우에 사용합니다. Non EQUI JOIN의 경우에는 "=" 연산자가 아닌 다른(Between, >, >=, <, <= 등) 연산자들이 사용하여 JOIN을 수행하는 것 입니다.
Non EQUI JOIN의 대략적인 형태
123SELECT 테이블1.컬럼명, 테이블2.컬러명, ...FROM 테이블1, 테이블2WHERE 테이블1.컬러명1 BETWEEN 테이블2.컬럼명1 AND 테이블2.컬럼명2;cs 예제01) 사원이름과 직급, 급여, 급여등급을 출력하세요.
123456SELECT E.ENAME, E.JOB, E.SAL, S.GRADEFROM EMP E, SALGRADE SWHERE E.SAL BETWEEN S.LOSAL AND S.HISAL;cs [Oracle] FROM 절 JOIN 형태 : https://tychejin.tistory.com/102
[Oracle] 셀프 조인(Self Join) - https://tychejin.tistory.com/108
반응형'RDS > Oracle' 카테고리의 다른 글
[Oracle] 집합 연산자(SET OPERATOR) (0) 2019.03.11 [Oracle] FROM 절 JOIN 형태 (0) 2019.03.10 [Oracle] SELECT 문장 실행 순서 (0) 2019.03.10 [Oracle] ORDER BY 절 (0) 2019.03.10 [Oracle] GROUP BY, HAVING 절 (0) 2019.03.10