상세 컨텐츠

본문 제목

Inner Join 과 Outer Join 의 차이점

기술 면접 오답 정리

by 알케이88 2019. 11. 22. 00:56

본문

오늘 면접 보러 간 곳에서 몇 가지 질문을 받았다.

공부했던 건 확실했지만 막상 실무에 사용할 질문을 받으니 말 문이 턱 막혔다.

오답 정리할 겸 다시 공부할 겸 겸사겸사

다시 이 문제가 나오길 바라면서 작성해 보기로 했다.

 

지금 모르는 건 부끄러운 것이 아니니까

 

자 그럼 이제 알아보자.

 

우선 Join에 대해서 알아보자

 

Join-

join(조인) 또는 결합 구문은 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것이다.

(출처 위키피디아)

다른 말로 조인이란 여러 테이블에 있는 정보중 사용자가 필요한 정보만 가져와 가상의 테이블처럼 만들어서 결과를 보여주는 것으로 n개의 테이블을 조합하여 하나의 열로 표현한 것이다.

 

조인에는 총 네 가지의 종류가 있다.

 

1. Inner Join

2. Outer Join

3. Cross Join

4. Self Join

 

1. INNER JOIN(내부 조인)

- 키 값이 있는 테이블의 칼럼 값을 비교해서 맞는 값을 가져오는 것이다.

한 마디로 서로 관련된 내용을 검색해 가져오는 방법이다. 

수학은 못하지만 쉽게 두 테이블의 교집합이라고 생각하면 쉬울 거 같다.

INNER JOIN
이 구문을 단순화 시킨다면

 

2. OUTER JOIN(외부 조인)

- OUTER JOIN 은 여러 테이블 중 한 테이블에만 데이터가 있고 다른 쪽에는 없는 경우, 데이터가 있는 테이블의 내용을 전부 출력하는 방법이다.

OUTER JOIN

OUTER JOIN 에는 LEFT, RIGHT, FULL OUTER JOIN 이 있는데

말 그대로 왼쪽의 모든 데이터를 오른쪽 테이블 데이터에 매칭하고 매칭 되는 데이터가 없는 경우 NULL로 표시하고,

반대로 오른쪽의  데이터를 왼쪽 데이터를 매칭, 양쪽 모두 조건이 일치하지 않은 것까지 모두 결합해서 출력하는 방식이다.

 

3. CROSS JOIN(교차 조인)

-CROSS JOIN은 두 테이블의 모든 조합을 받아온다.

이 역시 수학으로 따지면 곱집합이라 하면 편할 것이라 생각된다.

CROSS JOIN

 

SQL에서 사용할 수 있는 구문을 작성하는 방식은 아래와 같다

이 구문을 단순화 한다면 아래처럼 쓸 수가 있다.

4. SELF JOIN(자체 조인)

- INNER와 OUTER는 보통 여러 테이블을 조인하는데 자신의 테이블로도 조인이 가능 한데 이것을 SELF JOIN(자체 조인)이라고 한다.

 

자체 조인은 동일한 테이블을 사용하기 위해 각각 다른 이름으로 지정해서 SQL을 작성 한다.

동일 테이블이라 조인 조건 및 조회 화는 칼럼명이 겹치게 되어, 각각 다른 이름으로 별칭을 붙여서 구별을 할 수 있게 한다.

 

JOIN 표 출처:https://araikuma.tistory.com

 

댓글 영역