-
생활코딩( SQL join ) (1) - JOINBackend/JOIN심화 2021. 6. 5. 23:38
1. JOIN이란?
1-1) 정의
관계형 데이터베이스에서 여러 테이블을 하나의 테이블처럼 취급하는 방법
관계형 데이터베이스가 곧 JOIN이라고도 할 만큼 매우 중요한 개념
class로 분리하는 것 처럼, table 분리시 관리 유지/보수가 용이하고, 하나의 조합으로 사용하기 위해 Join을 사용
1-2) 알아야 하는 것
1) Join 방식의 종류
2) Join이 동작하는 원리
2. 테이블 분리
2-1) 테이블 분리의 중요성
Join에서 각 테이블들이 조합으로 쓰이므로, table을 잘 분리하는 방법을 먼저 알고 있어야 함
※ 실습 예제
2-2) 테이블 분리 방식
핵심은 중복은 없애는 것
1) Author 중복
Topic table.author_id : foreign key
2) Job 중복
> 결과
※ 모든 table은 하나의 theme(주제) 만 가져야 한다!
3. Join
링크 : link
에서 SQL Join Visualizer 확인할 수 있음
SELECT * FROM <tbl_A> .... <tbl_B>
1) Join operation 대상 A - B 순으로 나타내기
2) INNER, LEFT, RIGHT, OUTER에 순에 따라 A, B 테이블 중 기준이 정해짐
3) 조건절은 대상 A-B를 작성 후에 기술하는 syntax
3-1) INNER JOIN
> 교집합만 남겨두는 query
SELECT * FROM TableA A INNER JOIN TableB B ON A.key = B.key
3-2) LEFT JOIN
> A - B 순서 중, LEFT의 A를 기준으로 query가 동작
SELECT * FROM TableA A LEFT JOIN TableB B ON A.key = B.key WHERE B.key IS NULL
SELECT * FROM TableA A LEFT JOIN TableB B ON A.key = B.key
3-3) RIGHT JOIN
> A - B 순서 중 right의 B를 기준으로 query가 동작
SELECT * FROM TableA A RIGHT JOIN TableB B ON A.key = B.key WHERE A.key IS NULL
SELECT * FROM TableA A RIGHT JOIN TableB B ON A.key = B.key
3-4) FULL OUTER
SELECT * FROM TableA A FULL OUTER JOIN TableB B ON A.key = B.key
4. 연습예제 준비
링크 : link
에서 sql 생성 스크립트 가져와서 사용
mysql> source <path to .sql file>
참조
https://opentutorials.org/course/3884
https://opentutorials.org/course/3884/25179
https://opentutorials.org/course/3884/25180
반응형'Backend > JOIN심화' 카테고리의 다른 글
생활코딩( SQL join ) (5) - EXCLUSIVE JOIN (0) 2021.06.10 생활코딩( SQL join ) (4) - FULL OUTER JOIN (0) 2021.06.09 생활코딩( SQL join ) (3) - INNER JOIN (0) 2021.06.09 생활코딩( SQL join ) (2) - LEFT JOIN & RIGHT JOIN (0) 2021.06.06