ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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의 대략적인 형태

    1
    2
    3
    4
    SELECT 테이블1.컬럼명
              , 테이블2.컬러명, ...  
      FROM 테이블1, 테이블2
    WHERE 테이블1.컬럼명1 = 테이블2.컬럼명2; 
    cs

    -> WHERE 절에 JOIN 조건을 넣습니다. 

     

    EQUI JOIN의 ANSI/ISO SQL 표준 방식

    1
    2
    3
    4
    SELECT 테이블1.컬럼명
              , 테이블2.컬러명, ...  
      FROM 테이블1 INNER JOIN 테이블2
          ON 테이블1.컬러명1 = 테이블2.컬럼명2;    
    cs

    -> ON 절에 JOIN 조건을 넣습니다.

     

    예제01) 사원들의 이름, 부서번호, 부서이름을 출력하세요.

    1
    2
    3
    4
    5
    SELECT E.ENAME
          , D.DEPTNO
          , D.DNAME
      FROM EMP E, DEPT D
     WHERE E.DEPTNO = D.DEPTNO;
    cs

     

    NON EQUI JOIN 

    Non EQUI(비등가) JOIN은 두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하지 않는 경우에 사용합니다. Non EQUI JOIN의 경우에는 "=" 연산자가 아닌 다른(Between, >, >=, <, <= 등) 연산자들이 사용하여 JOIN을 수행하는 것 입니다. 

     

    Non EQUI JOIN의 대략적인 형태

    1
    2
    3
    SELECT 테이블1.컬럼명
    , 테이블2.컬러명, ...  
    FROM 테이블1, 테이블2
     WHERE 테이블1.컬러명1 BETWEEN 테이블2.컬럼명1 AND 테이블2.컬럼명2;  
    cs

     

    예제01) 사원이름과 직급, 급여, 급여등급을 출력하세요.

    1
    2
    3
    4
    5
    6
    SELECT E.ENAME
         , E.JOB
          , E.SAL
          , S.GRADE
    FROM EMP E, SALGRADE S
    WHERE 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

    댓글

Designed by Tistory.