4일차: JOIN
JOIN이란?
: 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것.
기본 형태
SELECT (테이블.컬럼, 테이블.컬럼) FROM 테이블1, 테이블2 WHERE(조건) |
내부 조인(Inner join)
: 기준 테이블과 조인 테이블 모두에 조인컬럼 데이터가 존재해야 조회 됨.
내부 조인의 형식
SELECT 조회할 컬럼 FROM 테이블1 (INNER) JOIN 테이블2 --INNER JOIN은 'INNER' 생략 가능 ON 테이블1.컬럼 = 테이블2.컬럼--JOIN될 조건 WHERE 추가 조건; |
SQL
SELECT buy.mem_id, member.mem_name, buy.prod_name, member.addr FROM buy JOIN member ON buy.mem_id = member.mem_id; -------- 테이블 이름에 별칭을 붙이면 SELECT B.mem_id, M.mem_name, B.prod_name, M.addr FROM buy B JOIN member M ON B.mem_id = M.mem_id; |
외부 조인(Outer join)
: 두 테이블을 조인할 때 필요한 내용이 한쪽 테이블에만 있어도 결과를 추출할 수 있다.
외부 조인의 형식
SELECT 조회할 컬럼 FROM 테이블1(LEFT테이블) <LEFT / RIGHT / FULL> OUTER JOIN 테이블2 (RIGHT테이블) ON 조건문 [WHERE 검색 조건]; |
- 두 테이블 전부 값을 유지 -> FULL OUTER JOIN
- 왼쪽 테이블 값만 유지 -> LEFT OUTER JOIN
- 오른쪽 테이블 값만 유지 -> RIGHT OUTER JOIN
SQL
SELECT M.mem_id, M.mem_name, B.prod_name, M.addr FROM member M LEFT OUTER JOIN buy B ON M.mem_id = B.mem_id ORDER BY M.mem_id; |
그 밖의 조인
상호 조인(cross join)
: 두 테이블의 데이터의 모든 조합 (곱집합, 테이블1 row * 테이블2 row의 개수 만큼 row를 가진 테이블 생성)
상호 조인의 형식
SELECT 조회할 컬럼 FROM 테이블1 CROSS JOIN 테이블2 |
자체 조인(self join)
: 1개의 테이블에 가상으로 1 , 2 라는 별칭을 부여하여 2개의 테이블처럼 간주한 뒤 조인하는 것.
기본 형태
SELECT 조회할 컬럼 FROM 테이블.별칭A INNER JOIN 테이블 별칭B ON 조인될 조건 [ WHERE (검색 조건)] |
- SELF JOIN도 INNER JOIN, OUTER JOIN으로 문제 유형에 따라 다르게 수행 가능.
'스파르타 부트캠프(spring)' 카테고리의 다른 글
[내일배움캠프_Spring] 자바 Spring 입문_예약어_230116 (0) | 2023.01.16 |
---|---|
[내일배움캠프] 자바 Spring_SQL(5)제약조건_230113 (0) | 2023.01.16 |
[내일배움캠프] 자바 Spring_SQL(3)CAST, CONVERT_230111 (0) | 2023.01.12 |
[내일배움캠프] 자바 Spring_SQL(2)삽입, 수정, 삭제_230110 (0) | 2023.01.10 |
[내일배움캠프] 자바 Spring_SQL_230109 (0) | 2023.01.09 |