반응형
📌 이 글은 내돈내산으로 '[인프런] Joe의 배워서 바로 쓰는 SQL 쿼리' 강의 내용을 요약 정리한 것입니다.
Join의 개념
- 여러 테이블을 하나로 합쳐주는 역할을 하는 SQL의 기능
- 지금까지의 SQL 쿼리들은 테이블 하나에 대해서만 데이터를 가져왔음
- 4가지의 기본 Join을 알아볼 예정
- 이후에는 다중 테이블에서 데이터를 가져올 수 있게 됨 (Cross Join, Left Join, Right Join, Inner Join)
Join의 원리
- Key(두 테이블 간의 공통점)를 기준으로 테이블을 합치게 됨
- Key의 종류: PK(Primary Key, 중심이 되는 키값), FK(Foreign Key, PK를 참조하고 있는 B테이블의 키)
Join의 종류
- Inner Join : 두 집합 간 공통되는 부분(교집합)만 합침
- Cross Join : 두 집합 모든 부분(합집합)을 합침 (즉, Cross join은 가능한 모든 경우의 수를 나타내고, 다른 join은 Cross join에서 특정 경우만 필터링 한 것.)
- Left Join : Inner Join을 통해 두 집합 간 공통되는 부분(교집합)은 당연히 포함하고, 공통되지 않더라도 왼쪽에 있는 A집합의 부분은 모두 포함
- Right Join : Inner Join을 통해 두 집합 간 공통되는 부분(교집합)은 당연히 포함하고, 공통되지 않더라도 오른쪽에 있는 B집합의 부분은 모두 포함
- 추가) Left Outer Join : 교집합은 제외하고 A테이블에만 포함되는 걸 추출해줘(차집합)
- 추가) Right Outer Join : 교집합은 제외하고 B테이블에만 포함되는 걸 추출해줘(차집합)
- 추가) Full Outer Join : Left Outer Join + Full Outer Join
Join의 코드 형태
select *
from
(
table1
) a
inner join
(
table2
) b
on a.key = b.key
;
- from 절 뒤에 table 이름(table1, table2) 두 개를 적음
- 두 테이블의 가운데에 join 방식 적음
- 끝부분에 어떤 조건 위에서 합친다는 의미로 on + 각 테이블의 키 이름 적음
실습 문제
- 테이블명 뒤에 c, o 이런식으로 붙이는 건 약자로 만들겠다는 것
- on 뒤에 기준 키값 적을 때 어떤 테이블의 키값인지 c, o 이런 것도 적어줘야 함
- 참고) 엔터는 치든 안치든 똑같은 결과가 나옴(스페이스는 반드시 쳐야 함)
- 실무에서는 right join이 헷갈릴 수 있으니 잘 사용하지 않는 편임
- 실무에서는 보통 left join, inner join만 주로 사용하는 편
- where 조건 추가할 때 해당 컬럼이 어디에 속해있는지 명시하는 것이 더 정확 ex. c.Country
- 1996년도 7월에 주문된 건만 추출 시, where o.orderdate between '1996-07-01' and '1996-07-31'도 가능
join은 비즈니스애널리틱스 복수전공
강의에서 배웠던 개념이다.
그러나 데이터 조회할 때 직접
join을 사용해본 건 처음이라
재밌게 수강했다!
이번 join 파트 실습 문제 풀이할 때
그간 강의에서 배웠던 함수나 연산자 등의 내용들이
모두 뭉쳐져 응용할 수 있어서 더 흥미로웠다.
정신차려보니 내 손으로 SQL 코드를 짜고 있는
신기한 경험을 했다.
반응형
'서비스 기획해요 > 강의 들어요' 카테고리의 다른 글
[인프런] 배워서 바로 쓰는 SQL 쿼리_#5. 강의를 나가며 (1) | 2024.12.03 |
---|---|
[인프런] 배워서 바로 쓰는 SQL 쿼리_#3. SQL 중급 활용(Grouping&Functions) (0) | 2024.12.02 |
[인프런] 배워서 바로 쓰는 SQL 쿼리_#2. SQL 기본 활용 (Query) (1) | 2024.12.01 |
[인프런] 배워서 바로 쓰는 SQL 쿼리_#1. 오리엔테이션 (1) | 2024.11.29 |
[인프런] PM을 위한 데이터 리터러시_#15. 전체 강의 총정리 & ChatGPT를 데이터 업무에 활용하기 & 완강 후기 (2) | 2024.11.24 |