데이터베이스 JOIN 이란

1. Join 문이란? 

두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용

 

2. Join 문을 사용하는 이유 (왜?)

찾는 데이터가 한 테이블에 모두 있으면 좋겠지만 보통 한 테이블에 있지 않고 여러 테이블에 나눠져 있습니다.

두 개이상의 테이블을 엮어서 원하는 데이터를 추출하기 위해서 사용합니다.

  2-1 왜 테이블이 나눠져있나요?

      1. 시간단축 : 모든 데이터가 한 테이블에 있으면 데이터 조회에 많은 시간이 소요됩니다. 

      2. 관리용이 : 세부적으로 데이터가 나눠져있어야 데이터 관리가 용이합니다.

      3. 확장성    : 신규 프로그램 셋업 시 작은단위의 테이블이 있어야 빠르게 프로그램 세팅 가능

 

3. Join문 무엇이 있나요?

Join은 총 4가지가 있습니다.

  • INNER JOIN(내부 조인)   : 두 테이블 조인 시 내가 찾는 데이터가 두 테이블에 모두 있어야 조회된다.OUTER JOIN(외부 조인) : 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다.

INNER JOIN

  • OUTER JOIN(외부 조인) : 한개의 테이블만 존재해도 데이터가 나온다.
    (차례대로 LEFT OUTER JOIN , RIGHT OUTER JOIN ,  FULL OUTER JOIN )

  • CROSS JOIN(상호 조인) : 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다.
                                              총 9 개의 LOW가 조회된다.

  • SELF JOIN(셀프 조인)  :  자기와 자기가 조인한다는 의미 1개의 테이블을 사용한다.

4. JOIN은 어떻게 사용하는가?

  INNER JOIN(내부 조인) : 
  조인할 조건에 어떤 열(컬럼)을 기준으로 일치하는것들을 조회할 것인지 작성해줍니다.

SELECT *               	  		-- 조회할 컬럼
FROM [테이블명] AS A          		-- 기준 테이블
INNER JOIN [테이블명2] AS B		-- 조인할 테이블
ON A.ID = B.IDValue			-- 조인할 조건

 

OUTER JOIN(외부 조인) : 

 

조인할 조건에 어떤 테이블 기준으로 일치하는것들을 조회할 것인지 작성해줍니다.

  • LEFT OUTER JOIN
    왼쪽 테이블을 기준으로 일치하는 행만 결합되고, 일치하지 않는 부분은 null 값으로 채워짐.
SELECT *               	  		-- 조회할 컬럼
FROM [테이블명] AS A          		-- 기준 테이블
LEFT OUTER JOIN [테이블명2] AS B		-- 조인할 테이블
ON A.ID = B.IDValue			-- 조인할 조건

 

  • RIGHT OUTER JOIN
    LEFT OUTER JOIN의 반대라고 생각하면된다 테이블 기준만 달라짐
SELECT *               	  		-- 조회할 컬럼
FROM [테이블명] AS A          		-- 기준 테이블
RIGHT OUTER JOIN [테이블명2] AS B		-- 조인할 테이블
ON A.ID = B.IDValue			-- 조인할 조건
  • FULL OUTER JOIN
    두 테이블의 모든 것들을 가져옴 (조건에 해당하지 않는 것들은 NULL 값 도출)
SELECT *               	  		-- 조회할 컬럼
FROM [테이블명] AS A          		-- 기준 테이블
FULL OUTER JOIN [테이블명2] AS B		-- 조인할 테이블
ON A.ID = B.IDValue			-- 조인할 조건

 

CROSS JOIN(상호 조인) :

A 행 개수 * B 행 개수 모든 행에 대하여 곱한 값의 데이터가 나옵니다.

SELECT *               	  		-- 조회할 컬럼
FROM [테이블명] AS A          		-- 기준 테이블
CROSS JOIN [테이블명] AS B		-- JOIN 테이블

SELF JOIN(셀프 조인) : 

INNER JOIN의 문법을 사용하며 자기자신에 대하여 JOIN 진행합니다.

SELECT *               	  		-- 조회할 컬럼
FROM [테이블명] AS A          		-- 같은 테이블
INNER JOIN [테이블명] AS B		-- 같은 테이블
ON a.id = b.age			-- 조건문

ID,age 에 대하여 SELF JOIN 진행

 

 

이와 같이 JOIN 에 대하여 알아보았습니다.

 

어떤 조건으로 JOIN 하는 것이 좋을지 알아보도록 다음번에 가지고 오도록 하겠습니다.