CS

[DB] 조인이란? - 1

우젼 2023. 1. 25. 21:46

지난 면접 준비를 하는 동안 면접에서 제일 자주 물어봤던것중 하나는 

Inner조인과 Outer조인이 무엇인지, 그리고 Outer조인에는 무엇이 있고 각각에 대한 설명을 해달라는 것이었습니다.

 

첫 면접에서 받았던 질문이라 분명히 공부했었는데 최근 면접에서 다시 질문받았으나 대답을 제대로 하지 못하여 복습하기 위해 글을 작성합니다.

 

먼저 JOIN이란? 두개 이상의 테이블이나 데이터베이스를 연결하는 것 입니다.

이때에 보통은 key를 사용하여 이를 기준으로 병합하여 사용하게 됩니다.

JOIN은 크게 아래의 네가지로 나뉩니다.

OUTER 조인
INNER 조인
CROSS 조인
SELF 조인

INNER 조인(내부 조인)은 두 비교군에 모두 지정한 열의 데이터가 있어야합니다.

OUTER 조인(외부 조인)은 두 비교군 중 하나에만 데이터가 있어도 사용이 가능합니다.

CORSS 조인(상호 조인)은 두 비교군의 각각의 모든 행을 서로 조인합니다.

SELF 조인(자체 조인)은 자기 자신을 조인합니다.

 

여기서 또 OUTER 조인은 아래의 세가지로 나눌 수 있습니다.

LEFT 조인
RIGHT 조인
FULL 조인

LEFT 조인과 RIGHT 조인은

두 비교군을 대조하면서 왼쪽의 A 테이블과 오른쪽의 B 테이블으로 나누었을때 A를 기준으로 할 것인지, B를 기준으로 할것인지를 결정할 수 있습니다.

 

Q? 공부하면서 궁금한 것은 사실상 코드를 조금만 바꿔서 쓰면 두개의 코드를 나누어서 사용해야했을 필요가 있었을까? 하는 궁금증이 생겼지만, 현업에서 근무를 해본것도 없고 조인 기능을 조예깊게 공부한 것이 아니어서 알 수 가 없었습니다. 혹시 굳이 이렇게 비슷한 기능을 나누어서 만들었는지, 어떤 때에 유용하게 활용할 수 있는지 아신다면 알려주세요 :)

 

그리고 마지막으로 FULL조인은 A 테이블과 B테이블 모두를 불러오는 합집합과 같은 기능을 합니다.

 

※ 일반적으로 미사여구 없이 '조인' 이라고만 했을 때에는 INNER 조인을 얘기하는 것이 보통이라고 합니다.

하지만 저같은 초보자들은 한번더 확인하고 진행하는 것이 좋을것같다는 생각도 합니다.