| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 프로그래머스
- 컴파일
- 항해15기
- 비전공자sqld
- java map 출력
- 항해99후기
- java알고리즘
- 코딩부트캠프후기
- java map
- java set 저장
- 격파르타비전공자
- java list 출력
- java알고리즘문제풀이
- 노베이스부트캠프
- java참조자료형
- java set 출력
- javaJVM
- java list 저장
- java기본자료형
- 작은수제거하기
- 격파르타장점
- 프로그래머스제일작은수
- 인터프린터언어
- javaJRE
- 격파르타후기
- java최솟값구하기
- sqld자격증합격
- 격파르타합격후기
- java 자료구조 활용
- java map 저장
- Today
- Total
코딩과 결혼합니다
SQL - Join, Union 본문
한 테이블에 모든 정보를 담을 수도 있겠지만, 불필요하게 테이블의 크기가 커져 불편해집니다.
그래서, 데이터를 종류별로 쪼개 다른 테이블에 담아놓고 연결이 필요한 경우 연결할 수 있도록 만들어놓습니다.
두 테이블을 연결시켜주는 필드를 열쇠라는 의미로 '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을 사용하면 내부 정렬이 먹지 않아요. 이 때 유용한 방법 ➡️ SubQuery(서브쿼리)
'2세 > SQL' 카테고리의 다른 글
| SQL - Group by, Order by (0) | 2023.06.01 |
|---|---|
| SQL - Select, Where (0) | 2023.06.01 |