SQL 도전기 - 32

김치전사·2022년 7월 22일
0

SQL 도전기

목록 보기
32/36

오늘은 테이블 결합에 대해 공부한다

여러 개로 나뉜 데이터를 하나로 묵어 결과를 도출해내는 방법이 테이블 결합이다.
테이블 결합의 기본이 되는 개념은 곱집합이다
곱집합은 합집합이나 교집합처럼 집합의 연산 방법 중 하나이다.
예를 들어 X집합은 {A,B}, Y집합은 {1,2}일 때 집합X와 집합Y의 곱집합은 {(A,1),(A,2),(B,1),(B,2)}이다

교차집합
SELECT * FROM 테이블명1, 테이블명2


집합 X, Y가 있다

FROM 구에 복수의 테이블을 지정하면 교차결합을 한다

내부결합



예제처럼 테이블을 만들어두면 동일한 상품명을 가진 상품이라도 구별하여 등록할 수 있다
재고 관리 테이블도 만들 수 있다


재고수 테이블에서는 상품코드를 통해 상품 테이블과 연결할 수 있다는 것이다

재고수의 상품코드와 상품의 상품코드가 다르다는 것을 알 수 있다
WHERE구를 통해 상품코드가 동일하다는 조건을 지정한다

이렇게 교차결합으로 계산된 곱집합에서 원하는 조합을 검색하는 것을 '내부결합(Inner Join)' 부른다
만약 상품분류가 식료품일 때의 조건을 추가하고 싶으면?

AND를 통해 추가하면 된다

INNER JOIN으로 내부결합하기

지금까지의 결합방법은 구식이고 요즘은 INNER JOIN을 사용한다

내부결합
SELECT * FROM 테이블명1 INNER JOIN 테이블명2 ON 결합조건

내부 결합을 통한 데이터관리


외부결합

외부결합은 '어느 한 쪽에만 존재하는 데이터행을 어떻게 다룰지'를 변경할 수 있는 결합 방법이다

내부결합에서는 상품코드가 0009인 상품이 제외된다

이런 경우에 외부결합을 사용하면 된다
외부결합은 결합하는 테이블 중에 어느 쪽을 기준으로 할지 결정할 수 있다

재고수 테이블에는 0009에 대한 데이터가 없으므로 값이 NULL로 표시된다

LEFT JOIN, RIGHT JOIN으로 외부결합을 할 수 있다

profile
개인공부 블로그입니다. 상업적 용도 X

0개의 댓글