코딩항해기

[DBMS/Oracle] JOIN 본문

DBMS/Oracle

[DBMS/Oracle] JOIN

miniBcake 2024. 8. 3. 12:06

 

집합연산자와 JOIN

 

집합연산자는 결과 값을 세로로 연결한 것이고, JOIN은 두 개 이상의 테이블 데이터를 가로로 연결한 것이다.

 

 

[DBMS/Oracle] 집합 연산자

집합 연산자는 예전 where절과 연산자를 다룰 때 함께 다룬 적이 있다.Join을 정리하며 제대로 구분 짓기 위해 다시 한 번 더 정리한다.  [DBMS/Oracle] WHERE절과 연산자WHERE절WHERE절은 SELECT문으로 데이

minibcake.tistory.com

 

 

JOIN

조회하고자하는 테이블이 쪼개져있으면 데이터를 한 눈에 확인하거나 사용하기 불편하기 때문에 입력, 수정, 삭제의 성능을 향상시키기 위해서 join을 통해 하나의 가상 테이블로 합친 후 사용한다.

Join은 크게 내부 조인과 외부 조인으로 분류된다.

(그 외 조인 조건에 따 등가 조인, 비등가 조인, 자체 조인 등으로 분류되기도 한다.)

 

 

내부 조인(inner join)

조건이 정확히 일치하는 값만 합쳐서 보여준다.

일반적으로 조인을 사용하면 inner join이라고 간주하기 때문에 inner를 생략할 수 있다.

SELECT * FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.공통열 = 테이블2.공통열;
SELECT * FROM 테이블1 JOIN 테이블2 ON 테이블1.공통열 = 테이블2.공통열;
--Inner 생략가능!

 

 

 

외부 조인(outer join)

한쪽에만 값이 있어도 테이블을 합쳐서 보여준다.

inner를 생략할 수 있는 inner join과는 달리 outer join은 앞에 키워드를 작성하면 outer을 생략할 수 있다.

(ex.  LEFT JOIN 등)

반드시 LEFT, RIGHT, FULL과 같은 키워드를 사용해야 한다.

outer 조인은 일치하지 않는 경우 Null값으로 반환한다.

 

 

 

왼쪽 외부조인(LEFT OUTER JOIN)

왼쪽 테이블의 모든 행을 반환하고 오른쪽 테이블과 일치하는 행이 있으면 해당 행도 함께 보여준다.

SELECT * FROM 테이블1 LEFT OUTER JOIN 테이블2 ON 테이블1.공통열 = 테이블2.공통열;

 

 

오른쪽 외부조인(RIGHT OUTER JOIN)

오른쪽 테이블의 모든 행을 반환하고 왼쪽 테이블과 일치하는 행이 있으면 해당 행도 함께 보여준다.

SELECT * FROM 테이블1 RIGHT OUTER JOIN 테이블2 ON 테이블1.공통열 = 테이블2.공통열;

 

 

전체외부조인(FULL OUTER JOIN)

양쪽 테이블의 모든 행을 반환하고, 일치하는 행이 없는 경우에도 각 테이블의 행을 모두 보여준다.

SELECT * FROM 테이블1 FULL OUTER JOIN 테이블2 ON 테이블1.공통열 = 테이블2.공통열;

 

*외부 조인의 경우 기준이 되는 열에 '(+)'를 붙여 외부 조인을 하는 경우도 있다.