※ CS 스터디/데이터베이스

6. 조인(Join)의 종류

J 크 2023. 8. 29. 21:40
728x90
반응형

본 게시글은  : 면접을 위한 CS 전공지식 노트 (출판사 : 길벗, 주홍철 지음) 을 참조하여 작성하였습니다. + 구글링


◆  조인 (Join)

- 조인(Join)이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것

- MySQL에서는 Join이라는 쿼리로, MongoDB에서는 lookup이라는 쿼리로 이를 처리

- MongoDB 사용 시 lookup은 권장하지 않음 (MongoDB는 관계형 데이터베이스보다 조인 연산이 낮음)

- 조인의 종류 중 대표적인 내부 조인, 왼쪽 조인, 오른쪽 조인, 합집합 조인 소개

< 테이블 예시 > 

테이블 A and B

- 내부 조인 (Inner join) : 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기

                       ( 두 테이블 간의 교집합 )

테이블 A and B

 < 코드 예시 >

SELECT * FROM TableA A
INNER JOIN TableB B ON
A.key = B.key

< 테이블 예시 >

Inner Join

- 왼쪽 조인 (Left outer join) : 왼쪽 테이블의 모든 행이 결과 테이블에 표기

                    ( 왼쪽 테이블의 집합 )

테이블 A and B

    : 테이블 B의 일치하는 부분의 레코드와 함께 테이블 A를 기준으로 완전한 레코드 집합 생성

    : 만약 테이블 B의 일차하는 항목이 없으면 해당 값은 null

    < 코드 예시 >

SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key

< 테이블 예시 >

Left Join

- 오른쪽 조인 (Right outer join) : 오른쪽 테이블의 모든 행이 결과 테이블에 표기

                    ( 오른쪽 테이블의 집합 )

 

    : 테이블 A에서 일치하는 부분의 레코드와 함께 테이블 B를 기준으로 완전한 레코드 집합을 생성

    : 만약 테이블 A의 일차하는 항목이 없으면 해당 값은 null

    < 코드 예시 >

SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key

< 테이블 예시 >

Right Join

- 합집합 (Full outer join) : 두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 표기

                    ( 모든 테이블의 집합 )

                                                                       

    : 양쪽 테이블에서 일치하는 레코드와 함께 A,B 테이블 전체의 레코드 집합을 생성

    : 일치하는 항목이 없으면 누락된 쪽에 null값이 포함되어 출력

    < 코드 예시 >

SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key

< 테이블 예시 >

Full Join


 

인덱스의 관한 부분은 후에 직접 설계해보고 관련하여 포스팅할 예정입니다 ! !

위의 글과 관련하여 추가적인 내용이나 피드백은 언제나 환영입니다 :)