- Join: 두 테이블의 공통된 정보(key값)를 기준으로 테이블을 연결해서 한 테이블
처럼 보는 것 (엑셀의 vlookup과 비슷한 개념)
// 유저 포인트 정보에 유저 정보를 연결
// NULL 값이 포함될 수 있음 (포인트가 없는 유저가 있을 수 있으므로)
select * from point_users
left join users
on point_users.user_id = users.user_id
Join을 할 때는 연결의 기준이 되고 싶은 테이블을 from 절에, 기준이 되는 테이블에 붙이고 싶은 테이블을 Join 절에 위치
실행 순서: from → join → select
// 주문 정보에서 naver 메일을 쓰는 유저의 성씨별 주문 건수 가져오기
(*이 데이터베이스에서는 name에 성씨만 공개되어 있음)
select u.name, count(u.name) as count_name from orders o
inner join users u
on o.user_id = u.user_id
where u.email like '%naver.com'
group by u.name
is NULL / is not NULL: NULL값의 여부 확인하기
// 유저 중에 포인트가 없는 사람(=즉, 시작하지 않은 사람들)의 통계
select name, count(*) from users u
left join point_users pu on u.user_id = pu.user_id
where pu.point_user_id is NULL
group by name
SQL로 추출한 두 테이블을 두 테이블을 위 아래로 합치고 싶을 때
// A 테이블과 B 테이블을 위 아래로 합치기
(
Select 구문으로 추출한 A 테이블
)
union all
(
Select 구문으로 추출한 B 테이블
)
※ 스파르타코딩클럽의 '엑셀보다 쉬운 SQL' 강의를 듣고 정리한 SQL 기초 문법입니다.