728x90
- JOIN : 2개 이상의 테이블을 연결 / 여러 테이블에서 정보를 가져옴
- 공통의 칼럼을 기준으로 여러 테이블을 합쳐줌
1. OUTER JOIN
-
- 외부 조인 : 1개 테이블에만 데이터가 있어도 결과 나옴
- 데이터가 없는 부분 ⇒ NULL로 가져옴
-
- A테이블 : 방문자 정보 / B테이블 : 구매자 정보
- (매장에 방문 + 구매O 한 사람) & (방문 + 구매X 한 사람) 알아내기
- B테이블에 구매자 정보는 없더라도 → 값을 표출해야 하는 상황 ⇒ 문제를 해결할 수 있는 조인기법 = OUTER JOIN
- (매장에 방문 + 구매O 한 사람) & (방문 + 구매X 한 사람) 알아내기
- A테이블 : 방문자 정보 / B테이블 : 구매자 정보
1) LEFT OUTER JOIN
2) RIGHT OUTER JOIN
3) FULL OUTER JOIN
-
- A와 B 테이블의 모든 정보가 조회
- 1A, 2A : 방문O + 구매O
- 3A, 4A : 방문O + 구매X
- 7B, 8B : 방문X + 구매O
- A와 B 테이블의 모든 정보가 조회
2. INNER JOIN
- 내부 조인 : 두 테이블에 모두 지정한 컬럼에 대한 데이터 존재해야함
- = JOIN 조건에서 동일한 값이 있는 행만 반환 = 교집합
- JOIN 하려는 모든 테이블에 동시에 존재하는 데이터
SELECT *
FROM 기준테이블
INNER JOIN 붙일테이블 **ON join_기준열**
3. NATURAL JOIN
- 두 테이블 간 동일한 이름을 갖는 모든 컬럼들에 대해 등가조인 수행
- 공통된 속성을 찾아 같은 값을 갖는 항목끼리 결합 ⇒ 같은 값을 갖는 항목이 없을 경우 → 제외 // 불안정함
- INNER JOIN 과 차이점 : 교집합 여부
4. CROSS JOIN
- 상호 조인 : 한쪽 테이블의 모든 행 + 다른 테이블의 모든 행을 조인
- CROSS JOIN 결과 — 전체 행 개수 = 두 테이블의 각 행의 개수를 곱한 수 (=카티션 곱 CARTESIAN PRODUCT)
- 상호 적절한 JOIN 조건이 없을 경우 사용 (겹치는 컬럼이 없는 경우)
SELECT *
FROM <첫 번째 테이블>
CROSS JOIN <두 번째 테이블>
5. SELF JOIN
- 자체 조인 : 자기 자신과 조인 ⇒ 한개 테이블 사용
728x90
'Study' 카테고리의 다른 글
[SQLD] 서브쿼리 개념 톺아보기 (1) | 2023.11.21 |
---|---|
[SQLD] VIEW는 가상테이블! (0) | 2023.11.21 |
[SQLD] 1과목 핵심 개념 모아보기 (2) | 2023.11.13 |
[Github] 깃허브 입문하기! / git 설치와 초기설정 (0) | 2023.09.22 |
웹에 있는 표 엑셀 파일로 변환하기 [Excel, JSON] (0) | 2023.09.09 |