마지막 4주차
서브쿼리(Subquery)란?
'쿼리 속 쿼리'라고 생각하면 된다.
서브쿼리를 사용하면 SQL쿼리를 간단하게 쓸 수 있다.
필수는 아니지만 효율적이라는 말씀
예시) kakaopay로 결제한 유저 정보(id, name, email) 보기
1. 서브쿼리 안쓴 version
2. 서브쿼리 version
서브쿼리를 만들기 위해 차근차근
1) 먼저 kakaopay로 결제한 user_id 구하기
2) 위에서 구한 user_id에 해당하는 유저들만 골라보기
(위에서 만들어놓은 쿼리를 서브쿼리로 쏙 넣어준다)
서브쿼리는 where, select, from 절에서 자주 사용된다.
1. where
where 필드명 in (subquery)
위에 예시에서 나왔었다.
2. select
select 필드명1, 필드명2, (subquery) from 테이블명
3. from
(가장 많이 사용된다고 함)
내가 만든 select와 이미 존재하는 테이블을 조인하고 싶을 때 사용해보자
예시) 코스 아이디별 유저의 체크인수와 코스 인원 구해보기
1) 코스 id별 유저의 체크인 개수
2) course_id별 인원 구하기
3) 1)과2)를 붙이기
1)의 쿼리를 a 2)의 쿼리를 b로 놓고
inner join을 해서 만들어진 테이블을 from뒤에 가져다놓은 형태
with 절
with절로 깔끔하게 쿼리문을 정리할 수 있다.
정리 전
정리 후
이게 뭐가 정리가 된 것이뇨 반문할 수 있지만
inner join기준으로 간단해짐을 볼 수 있다.
즉, select c.title 이후를 보면 된다.
정리 전은 table1과 table2를 있는 그대로 줄줄이 나열.
vs.
정리 후는 윗쪽에서 'table1'과 'table2' 를 with를 사용해서 정의를 해주고
필요한 것을 불러오는 주제(?) 쿼리문에서는 정의해놓은 table1과 table2로 치환.
주요 쿼리문을 봤을 때 간단해진 것을 알 수 있다.
유용한 SQL 문법
1. substring_index
특정 문자 기준으로 앞의 내용 가져오기
해석: email 필드에서 @를 기준으로 앞의 문자 가져오기
특정 문자 기준으로 뒤의 내용 가져오기
해석: email 필드에서 @를 기준으로 뒤의 문자 가져오기
2. substring
해석: email 필드문 몇번째 문자부터 몇개를 가져와라.
오잉. 여기선 첫번째가 0이 아닌듯
이로써 엑셀보다 쉬운 SQL 완강!!
근데 데이터를 자유자재로 다루려면 연습을 많이 해야할듯
4주차는 1~3주차에 비해 아직 좀 헷갈린다.
'데이터 다루기' 카테고리의 다른 글
프로그래머스 SQL 코딩테스트 연습 (0) | 2023.05.25 |
---|---|
해커랭크 SQL 오류 / Weather Observation Station 17 (1) | 2023.04.18 |
스파르타코딩클럽 SQL 3주차 - join 개발일지 (0) | 2023.03.15 |
스파르타 코딩클럽 엑셀보다 쉬운 SQL 2주차 (0) | 2023.03.14 |
스파르타 코딩클럽 SQL 1주차 (0) | 2023.03.13 |