TIL 21.06.21

Jaemin Jung·2021년 6월 22일
0

Today I Learned

목록 보기
43/62
post-thumbnail

오늘한일

관계형 데이터베이스의 개념과 sql 문법 학습을 토대로 과제를 진행하였다.
과제를 진행하면서 join을 사용하는 이유를 명확히 알게 되었고,
중요한 명령어라 이에 대해서 다뤄보려한다.

JOIN

데이터베이스(관계형)는 여러 개의 table을 가진다.
이전에 설명했듯이 table은 엑셀 sheet같은 개념이고, 행과 열을 가진다.
여러 개의 table은 각각 table에 부여된 Primary Key값이 있고, 이를 다른 테이블에서 받아오면, Foreign Key값이라고 한다. 이를 이용해서 테이블간의 연결을 할 수 있고,
JOIN 명령어를 이용해 데이터를 좀더 세부적으로 특정할 수 있다.

JOIN 명령어 사용법

JOIN은 기본적으로 교집합이라고 생각하면 좋다.
INNER, LEFT, RIGHT등 여러가지로 나뉜다.
가장 많이 사용되는 JOIN은 INNER JOIN이라고 한다. (JOIN = INNER JOIN)
기본적인 문법은 다음과 같다.

SELECT 컬럼_이름
FROM 테이블1_이름
JOIN 테이블2_이름 ON 테이블1_연관컬럼1=테이블2_연관컬럼2

...

SELECT 컬럼_이름
FROM 테이블1_이름
LEFT JOIN 테이블2_이름 ON 테이블1_연관컬럼1=테이블2_연관컬럼2

...

SELECT 컬럼_이름
FROM 테이블1_이름
RIGHT JOIN 테이블2_이름 ON 테이블1_연관컬럼1=테이블2_연관컬럼2

LEFT와 RIGHT가 많이 헷갈리는데,
LEFT는 왼쪽 테이블을 중심으로 오른쪽의 테이블을 매치시킨다.
왼쪽은 무조건 표시하고, 매치되는 레코드가 오른쪽에 없으면 NULL을 표시한다.

RIGHT는 오른쪽 테이블을 중심으로 왼쪽의 테이블을 매치시킨다.
오른쪽은 무조건 표시하고, 매치되는 레코드가 왼쪽에 없으면 NULL을 표시한다.

그럼 대체 뭐가 왼쪽이고 뭐가 오른쪽이냐,
FROM에 작성되는 테이블은 왼쪽이고, JOIN에 작성되는 테이블은 오른쪽이다.

한 쿼리문에 JOIN을 여러번 사용하여 여러 테이블을 이어갈 수 있다.

SELECT orders.id, orders.created_at, items.image, items.name, order_items.order_quantity, items.price, orders.total_price
FROM orders
INNER JOIN order_items on orders.id=order_items.order_id
INNER JOIN items on order_items.item_id=items.id
WHERE user.id = orders.user_id

참고사이트

https://superman28.tistory.com/23
https://velog.io/@eensungkim/JOIN-TIL-77%EC%9D%BC%EC%B0%A8

profile
내가 보려고 쓰는 블로그

0개의 댓글