상세 컨텐츠

본문 제목

[SQL 스터디_2팀] 3주차 강의노트

심화 스터디/SQL 스터디

by 히무하무 2023. 3. 27. 12:37

본문

작성자: 17기 서지민

본 게시글은 datacamp의 Joining Data in SQL 강의를 기반으로 작성되었습니다.

1. Inner Join

- 사용자가 지정한 열을 기반으로 left table과 right table 양쪽에 모두 존재하는 행만 결합

- AS 로 table 이름을 간단하게 지정 가능

 

각 테이블에 일치하는 필드 지정

1) ON 

- 각 테이블에 일치하는 필드의 이름이 다를 경우에도 사용가능

밑 예시의 경우 ) ON left_table.id = right_table.id

 

2) USING

 - 각 테이블에 일치하는 필드의 이름이 같을 때만 사용 가능

- 밑 예시의 경우) USING (id)

 

- SELECT - FROM - INNER JOIN - ON/USING 의 순서대로 작성

Inner Join 예시

 

 

 

2. 테이블 간에 존재하는 관계

1) One -to-many Relationship

- 가장 일반적인 관계

2) One-to-one Relationship

- 엔터티 간의 고유한 쌍

3) Many-to-many Relationship

 

 

 

3. Multiple Join (2개 이상의 JOIN을 결합)

1) 여러개의 JOIN 결합 가능

SELECT - FROM - INNER JOIN - ON/USING - INNER JOIN - ON/USING 의 순서로 작성

line 6의 left_table.id 는 right_table.id로도 작성 가능

 

2) 각 테이블에 중복 열이 존재하는 경우

multiple keywords를 지정함으로써 중복열을 해결할 수 있음

병렬 Join / 다중 키워드 지정

 

 

4-1. Left Join

- 사용자가 지정한 열을 기반으로 left table에 존재하는 행을 모두 결합

- right table에 존재하지 않는 행의 경우 null로 처리

Left Join 예시

4-2. Right Join

- 사용자가 지정한 열을 기반으로 right table에 존재하는 행을 모두 결합

- left table에 존재하지 않는 행의 경우 null로 처리

Right Join 예시

4-3. Left Join/Right Join

- Left Join과 Right Join은 항상 바뀌어 사용될 수 있다

--> Left Join이 사용자들에게 더 직관적으로 다가오기 때문에 Right Join은 덜 사용된다.

 

 

 

5. Full Join

- Left Join과 Right Join의 결합

- left table과 right table에 존재하는 모든 행을 결합

- 각 table에 존재하지 않는 행은 null 처리된다

Full Join 예시

 

 

 

6. Cross Join

- 각 테이블의 가능한 모든 조합을 추출

- Cross Join 은 결합 키워드 지정 X

Cross Join 예시
결합 키워드 구문 X

 

 

 

7. Self Join

- 같은 테이블끼리 Join하는 경우

- 같은 테이블 내에서 특정 부분끼리 비교하고싶을 때 사용

같은 테이블끼리 Join

관련글 더보기

댓글 영역