코딩과 결혼합니다

SQL - Join, Union 본문

2세/SQL

SQL - Join, Union

코딩러버 2023. 6. 3. 18:04
728x90

한 테이블에 모든 정보를 담을 수도 있겠지만, 불필요하게 테이블의 크기가 커져 불편해집니다.

그래서, 데이터를 종류별로 쪼개 다른 테이블에 담아놓고 연결이 필요한 경우 연결할 수 있도록 만들어놓습니다.

두 테이블을 연결시켜주는 필드를 열쇠라는 의미로 'key'라고 부릅니다.

 

:두 테이블의 공통된 정보 (key 값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것

 

 

 

Join의 종류

Left Join

 

여기서 A와 B는 각각의 테이블을 의미합니다.

둘 사이의 겹치는 부분은, 뭔가 테이블 A와 B의 key 값이 연결되는 부분일 것 같지 않나요?

 

 

 

 

 

Inner Join

여기서 A와 B는 각각의 테이블을 의미합니다.

이 그림은 뭔가, 두 테이블의 교집합을 이야기하고 있는 것 같지 않나요?

 

여기서는 비어있는 필드가 있는 데이터가 없어요! 그 이유는,  두 테이블에서 모두 가지고 있는 데이터만 출력했기 때문이에요.

 

 

 

 

 

Inner Join 순서

위 쿼리가 실행되는 순서: from → join → select

 

 

 

 

 

Tip

연결되는 테이블이 많아지면서 필드명과 테이블명이 헷갈려 실수할 수 있는데, 이렇게 alias를 지정해 주면 편하고 깔끔하게 SQL 쿼리를 작성할 수 있어요.

 

 

 

 

Left Join  어디에 → 뭐를 붙일건지, 순서가 중요

 

is NULL , is not NULL

ex)

* count 는 NULL을 세지 않는다.

 

 

 

결과물 합치기 : Union

Select를 두 번 할 게 아니라, 한번에 모아서 보고싶은 경우

이렇게 보여지길 원할 때
Union 사용

* union을 사용하면 내부 정렬이 먹지 않아요. 이 때 유용한 방법 ➡️ SubQuery(서브쿼리) 

'2세 > SQL' 카테고리의 다른 글

SQL - Group by, Order by  (0) 2023.06.01
SQL - Select, Where  (0) 2023.06.01