[데브코스] Insert, Update, Join
Updated: Categories: TILW2D4 - Join 문법 실습하고 사용법 정리
새로 배운 것
Type
- 돈 관련된거는
DECIMAL
타입을 사용하자 - 시간 데이터는
TIMESTAMP
만 써도 다 된다~ - 고정된 길이의 문자열은
CHAR
, 가변적이면VARCHAR
, 길이가 긴 문자열은TEXT
SPATIAL
은 위도, 경도를 반영한 위치 타입
Delete vs Truncate
- 둘 다 데이터를 삭제하는 명령어임
Truncate
이 속도가 더 빠르지만 조건을 걸 수 없고 롤백이 불가능함
Create, Delete, Insert, Update 등등..
- 문법 정리는 기존 레포에서 하기로 함 -> 🚀 Dev Memo
Join
- 크게 6가지 종류가 있다
- 서로 다른 테이블을 통합해 새로운 테이블?을 만들어내기~
- 백엔드는 inner & left 조인 정도만 잘 알면된다고 함 (휴 😇)
기본 문법
SELECT 필드명
FROM 테이블명
[INNER/LEFT/RIGHT/CROSS] JOIN 테이블명 ON 기준설정(키값매핑)
WHERE 조건
- 조인종류 옵션 선택 안하면 default로 inner join으로 수행됨
- from 테이블이 base가 되는 테이블이다
- where 조건은 from 테이블을 기준으로 수행됨
Inner Join
- base 테이블과 join 테이블의 공통 부분만을 출력한다
Left/Right Join
- Left 조인시 base 테이블을 기준으로 출력, join 테이블에 해당 키가 없다면 NULL로 채움
- Right 조인시 join 테이블이 기준이 된다. (Left와 정반대로 동작)
Full(Outer) Join
- MySQL에서는 Full 조인을 지원하지 않는다
- 따라서 Left, Right 조인을 따로 한 결과를 합집합(union)으로 묶어버린다
[LEFT 조인한거]
UNION
[RIGHT 조인한거];
Cross Join
- base 테이블과 join 테이블의 모든
조합
을 출력 - 각각 테이블 레코드 수가
M
,N
이라면 크로스 조인 결과는M*N
Self Join
- base 테이블과 join 테이블이 일치할 때.
- 자기 자신을 가로로 두번 출력하는 것임