2023. 1. 25. 21:46ㆍCS
지난 면접 준비를 하는 동안 면접에서 제일 자주 물어봤던것중 하나는
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 조인을 얘기하는 것이 보통이라고 합니다.
하지만 저같은 초보자들은 한번더 확인하고 진행하는 것이 좋을것같다는 생각도 합니다.
'CS' 카테고리의 다른 글
VO인가 HashMap인가? (1) | 2023.01.27 |
---|---|
VO와 DTO의 차이는? (0) | 2023.01.27 |
왜 스프링 프레임워크(Spring framework)를 사용하는 걸까? (0) | 2023.01.03 |
스레드(Thread)란 무엇일까? (0) | 2023.01.03 |
API, 라이브러리, 프레임워크에 대해 알아보자 (0) | 2022.12.29 |