본문 바로가기
Oracle

Oracle Review : Join / 등가 조인 / 외부 조인 / 자가 조인

by Growing time 2022. 8. 7.
반응형

 

조인

 

조인을 하기 위해서

1.      FROM절에 적어도 두 개 이상의 테이블이 있다(From 테이블명1 별명1, 테이블명2 별명2)

2.      Where절에 하나 이상의 조인 조건이 있다. (Where 별명1.컬럼명1 = 별명2.컬럼명2)

3.      생략 및 누락한 경우 카티션 프로덕트(교차/크로스 조인)가 생긴다.

4.       테이블1의 행의 수 * 테이블2의 행의 수

 

조인을 시행한 SQL

           SELECT  별명1.칼럼명1, 별명2.칼럼명2, 리터럴, 함수, 수식

           FROM   테이블명1 별명1, 테이블명2 별명2

           WHERE  테이블명1.컬럼명1 연산자 테이블명2.컬럼명2

           Groupby 테이블명1.컬럼명1

           Having   검색조건

           Orderby 테이블명1.컬럼명1

 


 

등가 조인

 

두 개 이상의 테이블로부터 행을 검색할 때, 한 테이블에 있는 하나 이상의 칼럼 값이 다른 테이블에 있는 하나 이상의 칼럼 값과 같을 때 참이 되고 참이 될 때 행의 칼럼 값을 조합하여 출력하는 조인이다.

 

1.     WHERE절을 이용하는 방법

  WHERE 테이블명1.칼럼명 = 테이블명2.칼럼명

  두 테이블의 칼럼 값이 공통된 행에 대해 출력한다.

  n개의 테이블을 조인한다면 최소 n-1개의 조인 조건을 작성한다.

  1  Select e.last_name, d.department_name, d.department_id

  2  From employees e, departments d

  3* where d.department_id=e.department_id

 

2.      NATURAL JOIN 키워드를 이용한 방법 (alilas를 가질 수 없다.)

  FROM 테이블명1 NATURAL JOIN 테이블명2

  모든 칼럼을 대상으로 공통 칼럼을 조사한다.

  1 Select last_name, department_name, department_id

  2 From employees natural join departments

 

3.      JOIN-USING 키워드를 이용한 방법

  FROM 테이블명1 JOIN 테이블명2 USING (공통칼럼명)

  1 Select last_name, department_name, department_id

  2 From employees  join departments using(department_id)

 


 

 

외부 조인

 

테이블 간의 공통된 행과 공통되지 않은 테이블의 행들도 모두 출력한다.

  (+)가 표시된 부분은 null값들이 나온다.

 

1.     WHERE절의 등가 조인 조건에 (+)를 기술한다.

WHERE 테이블명1.칼럼명 = 테이블명2.칼럼명 (+)

 

2.      Outer Join-On-키워드로 기술한다.

좌 외부 조인은 LEFT Outer Join ~ on ~ 키워드

우 외부 조인은 RIGHT Outer Join ~ on ~ 키워드

전체 외부 조인은 Full Outer Join ~ on ~ 키워드

 


 

자기 조인

 

테이블이 자신의 기본 키를 참조하는 외부 키를 갖고 있을 때 사용된다.

1.     FROM 테이블명 별명1, 테이블명 별명2

WHERE 조인 조건

2.      FROM 테이블명 별명1 JOIN 테이블명 별명2 ON 조인 조건

3.      FROM 테이블명 별명1 INNER JOIN 테이블명 별명2 ON 조인 조건

 

 

 

 

반응형

'Oracle' 카테고리의 다른 글

Oracle 문제 풀이 리뷰)  (0) 2022.08.15
Oracle Review : DCL/DDL/DML/TCL 정의 및 종류  (0) 2022.08.07
Oracle Review : 서브 쿼리  (0) 2022.07.23
Oracle Review : Group By절  (0) 2022.07.23

댓글