BookmarkSubscribeRSS Feed

[SQL 4-1] SQL Joins (SQL 테이블 조인)

Started ‎06-16-2020 by
Modified ‎06-16-2020 by
Views 1,232

[SQL 4-1] SQL Joins (SQL 테이블 조인)

 

안녕하세요 ^^

이번 시간에는 SQL에서의 JOIN에 대한 개괄적인 소개를 하겠습니다.

 

 두 개 이상의 Tables(=dataset)을 평행하게 결합하는 방식 알기

 table을 결합하는 방법 이해하기

 

간단한 형태의 테이블을 생성해보겠습니다.

사용할 두 개의 Table, 고객(Customers) 테이블, 거래(Transactions) 테이블은 다음과 같습니다.

 

SE22016111823522670.png

 

O Customers 테이블은 고객 정보 테이블로서, 고객의 ID, 이름 외에도 주소, 성별 등의 컬럼을 가질 수 있습니다.

O Transactions 테이블은 거래 정보 테이블로서, 거래한 고객의 ID, 거래형태, 금액 외에도 상품ID 등의 컬럼을 가질 수 있습니다.

 

SQL은 “join”을 사용하여 테이블을 수평적으로 결합합니다.

“join”은 첫 번째 테이블의 행 마다 두 번째 테이블의 대응하는 행을 매칭합니다.

매칭은 두 테이블에서 하나 또는 두 개 이상의 컬럼을 기준으로 수행됩니다.

SE22016111823530870.png

 

▶ inner join과 outer join 구분하기

PROC SQL은 두 가지 종류의 “join”이 있습니다.

 

① Inner Join

Inner Join은 매칭된 행들만을 반환합니다.

그림처럼 두 원의 공통된 부분을 제외한 나머지는 반환되지 않습니다.

SE22016111823534470.png

 

② Outer Join

Outer Join은 매칭된 행들뿐 아니라 매칭되지 않은 행들도 반환할 수 있습니다.

세 개의 그림을 보면, 두 원이 겹쳐지는 부분이 아닌 노란 부분과 파란 부분 자료도 반환합니다.

SE22016111823542170.png

 

앞으로 진행되는 수업에서 하나씩 실습해보겠습니다.

 

 

 

▶ Cartesian product(;데카르트 곱; 카티전 곱) 이해하기

JOIN의 주요한 개념 중 하나인, 일명 데카르트 곱 또는 카티전 곱이라고 하는 조합 방식에 대해 살펴보겠습니다.

(Cartesian product의 개념을 이해하는 것은 SQL에서 join을 어떻게 수행하는지 이해하는데 도움이 될 것입니다.)

 

Where 절 없이 From 절에 두 테이블을 코딩하면, 두 테이블의 모든 행의 조합을 만들어냅니다.

이러한 결과를 “Cartesian product”라고 합니다.

 

 

예시를 들어보겠습니다.

 

SE22016111823561370.png

 

고객 테이블에서 3개의 행과 거래 테이블에서 3개 행에 대해 Cartesian product를 아래 코드와 같이 수행하였습니다.

 

SE22016111823574070.png

 

위 코드를 실행하면, 아래와 같은 절차로 한 행씩 매칭된 자료가 쌓이며 최종 결과를 반출합니다.

 

1.PNG2.PNG

 

위 과정에서 볼 수 있듯이, 두 테이블의 각 3개 행의 모든 조합을 반환하는 것을 볼 수 있습니다.

 

그러나, 아래 최종(마지막) 결과를 보면, ID가 서로 같지 않아 제대로 매칭되지 않은 것을 확인할 수 있습니다.

SE22016111900034570.png

 

Cartesian product는 각 테이블의 행 수의 곱에 해당하는 행을 생산하게 됩니다.

 

SE22016111900040070.png

 

두 테이블의 각 행 수가 3행, 3행이라면 총 9행을,

두 테이블의 각 행 수가 1,000행, 1,000행이라면 총 1,000,000행을,

두 테이블의 각 행 수가 100,000행, 100,000행이라면 총 10,000,000,000행을 생산하는 것을 이해할 수 있습니다.

 

 

 

 

이상 SQL에서의 JOIN과 관련된 개괄 소개였습니다.

 

감사합니다 ^^

Contributors
Version history
Last update:
‎06-16-2020 10:46 PM
Updated by:

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Article Labels
Article Tags