본문 바로가기

Programming/DataBase

[SQL]INNER JOIN(내부조인)에 대해 알아보자!

728x90
반응형




▣ JOIN(결합구문)이란 무엇일까?

 ▷ 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것 입니다.

   따라서 조인은 테이블로 저장되거나, 그 자체로 이용할 수 있는 결과 세트를 만들어 냅니다.

 ▷ JOIN은 2개의 테이블 내에서 각각의 공통값을 이용함으로써 필드를 조합하는 수단이 됩니다.


▣ INNER JOIN의 종류엔 무엇이 있을까?

  1) INNER JOIN : 내부 조인은 둘 이상의 테이블에 존재하는 공통 속성의 값이 같은 것을 결과로 추출합니다.

   Ⅰ) 동등 조인(EQUI JOIN) : 둘 이상의 테이블에 존재하는 공통 속성의 동등 비교만을 사용하며, 부등호 조인은 동등조인에 포함하지 않는다.

      ※ 조인 문법은 명시적 표현법과 묵시적 표현법이 있습니다.

     A )명시적 표현법은 명시적으로 어떤 조인을 사용할 것인지, ON키워드로 어떤 구문을 조인할 것인지 지정해줍니다.

     B )묵시적 표현법은 SELECT 절의 FROM 구문에서 단순히 ,(콤마)를 사용하여 조인을 할 여러 테이블들을 나열하면 됩니다.

※ 명시적 표현과, 묵시적 표현의 값이 같은 것을 알 수 있습니다.



   Ⅱ) 자연 조인(NATURAL JOIN) : 동등 조인과 거의 유사합니다. 단, 조인 대상 테이블의 모든 컬럼들을 비교하여, 같은 컬럼명을 가진 대상으로 조인을 수행 합니다. 그리고, 중복된 컬럼은 한번만 출력되게 합니다.

EX) 

(동등조인의 결과)


(자연조인의 결과)

※ 동등조인에서 두번 표현되던 DEPTNO가 자연조인에선 하나로 합쳐져 표현된 것을 볼 수 있습니다.

   Ⅲ) 교차 조인(CROSS JOIN) : 카티션 프로덕트(Cartesian Product)로 알려져 있고, 조인에 참여한 테이블들의 모든 데이터가 합쳐져서 출력됩니다.

   교차조인이 발생하는 상황에는

        1. JOIN조건이 잘못 기술되었을 때

        2. JOIN조건을 정의하지 않았을 때

        3. 조인 조건이 조인 조건에 참여하는 테이블의 모든 행에 조인될 때

가 있습니다.

       A )명시적 표현법 : SELECT * FROM 테이블명 CROSS JOIN 조인할 테이블명

       B )묵시적 표현법 : SELECT * FROM 테이블명, 조인할 테이블명


교차조인을 예방하려면, 조인에 참여하는 테이블 수가 N개 일 경우, 최소한 N-1개의 조인 조건이 질의문 안에 있어야 합니다.

EX)


Ⅳ) 셀프 조인(SELF JOIN) : 자가 조인이라고도 하며, 하나의 테이블의 데이터를 활용해 조인하는 기법입니다. 테이블 하나에 서로 다른 이름을 지정해 주어야 합니다.

EX)




 

반응형