반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


데이터베이스(DB) JOIN(INNER JOIN / LEFT JOIN / RIGHT JOIN / OUTER JOIN) 정리

 

데이터의 중요성이 커지고 있는 지금, DB를 활용한 웹사이트, 모바일, 관련 서비스들은 DB를 필수적으로 사용해야 하며, DB의 중요성이 커지고 있다. 그렇기에, DB와의 연동으로 DB에서 데이터를 가져오는 기술은 성능에 따라 얼마나 빨리 가져오는지 성능 최적화에 관심이 커지고 있다. JOIN의 종류에 따라 DB의 성능의 판가름을 할 수 있다고 볼 수 있다.

 

1. JOIN이란?

JOIN은 데이터베이스 내에서 2개 이상의 테이블을 합쳐 SELECT를 하는 방법 중 하나입니다. 즉, 아래의 사진에서 A와 B라는 테이블을 합쳐 A와 B의 교집합 부분을 제외한 A와 B를 출력하던지, 교집합 부분을 출력하던지, 아니면 A와 B의 합집합을 출력하던지 등을 할 수 있습니다.

 

2. JOIN 주의사항

1) 테이블을 JOIN하려면 최소 1개 이상의 같은 컬럼을 가지고 있어야 한다.

 

2) 2개 이상의 테이블을 JOIN하기 때문에, 모든 컬럼의 참조는 명확하게 사용해야 한다.

- 예를 들어, A와 B 컬럼을 조인하면 아래와 같이 테이블명과 컬럼을 명확하게 써야 한다.

SELECT A.COL
FROM A INNER JOIN B
ON A.KEY = B.KEY;

 

 

3) 기본적으로, 어떤 JOIN인지 사용하지 않으면 DEFAULT로 INNER JOIN을 사용한다.

 

3. INNER JOIN

- INNER JOIN은 내부조인을 말한다.

- 아래의 사진과 같이 A와 B라는 테이블이 있을 때 A 테이블과 B 테이블의 교집합을 말한다.

- 즉, A값 전체와 A와 B 테이블의 KEY값이 같은 것들을 가져올 수 있다.

- INNER JOIN을 하는 코드는 아래와 같다.

SELECT COLUMN
FROM A INNER JOIN B
ON A.KEY = B.KEY

 

 

 

4. OUTER JOIN

- OUTER JOIN은 외부 조인이라고 한다.

- 아래의 사진과 같이 2가지로 나뉜다.

- 첫 번째로, A 테이블과 B 테이블 합집합.

- 두 번째로, A 테이블과 B 테이블 합집합에서 교집합을 뺀 것.

 

1) A 테이블과 B테이블 합집합.

- 위의 경우에는 아래의 코드로 사용하면 된다.

SELECT COLUMN
FROM A OUTER JOIN B
ON A.KEY = B.KEY

2) A 테이블과 B 테이블 합집합에서 교집합을 뺀 것.

- 위의 경우에는 아래의 코드로 사용하면 된다.

SELECT COLUMN
FROM A OUTER JOIN B
ON A.KEY = B.KEY
WHERE A.KEY IS NULL
AND B.KEY IS NULL

5. LEFT JOIN

- LEFT JOIN은 왼쪽 조인이라고 한다.

- 즉, A 테이블과 B 테이블이 있을 때, A 테이블 전체와 A테이블에서 B테이블의 교집합을 뺀 것으로 나뉜다.

1) A 테이블 전체 LEFT JOIN

- 위의 경우에는 아래의 코드로 사용하면 된다.

SELECT COLUMN
FROM A LEFT JOIN B
ON A.KEY = B.KEY
WHERE A.KEY = B.KEY

 

2) A 테이블과 B 테이블의 교집합을 뺀 A 테이블 LEFT JOIN

- 위의 경우에는 아래의 코드로 사용하면 된다.

SELECT COLUMN
FROM A LEFT JOIN B
ON A.KEY = B.KEY
WHERE B.KEY IS NULL

 

6. RIGHT JOIN

- RIGHT JOIN은 오른쪽 조인이라고 한다.

- RIGHT JOIN은 A 테이블과 B 테이블이 있을 때, B 테이블 전체와 B 테이블에서 A 테이블과 B 테이블의 교집합을 뺀 것으로 나뉜다.

 

1) B 전체 RIGHT JOIN.

- 위의 경우에는 아래의 코드로 사용하면 된다.

SELECT COLUMN
FROM A RIGHT JOIN B
ON A.KEY = B.KEY

 

2) B 테이블에서 A 테이블과 B 테이블의 교집합을 뺀 것.

- 위의 경우에는 아래의 코드로 사용하면 된다.

SELECT COLUMN
FROM A RIGHT JOIN B
ON A.KEY = B.KEY
WHERE A.KEY IS NULL

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기