.

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기

4주차 - 수강일자 211003

 

With

subquery 를 각각 써주는 게 아니라 table로 명명시켜서 쿼리문 작성 편의 및 가시성을 높인다.

 

구조 예시

( subquery )를 하나의 column처럼 사용

with table1 as ( subquery ) t1,
       table2 as ( subquery ) t2
select * from table

주의 점🔥

( subquery ) 마다 약어를 다 지정해줘야 한다.

 

적용 예시 - 4주 차 1번째 기록에 있는 예시

 

* 적용 전

select * from ( subquery ) s1
inner join ( subquery ) s2
on s1.column = s2.column

* 적용 후

with table1 as ( subquery ) s1,
	table2 as ( subquery ) s2
select * from s1
inner join s2
on s1.column = s2.column

서브 쿼리가 많아지고 복잡해질수록 with 구문을 쓰는 것이 훨씬 가독성이 좋아진다.

 

Substringindex

특정 기준으로 문자를 잘라서 원하는 부분만 출력하기

- python의 split과 동일

- SQL은 python과 달리 0,1,2,3으로 세는 게 아니라 1,2,3,4로 센다. 다만 -1이 마지막을 뜻하는 것은 동일하다.

 

구조 예시

SUBSTRING_INDEX( 자를 칼럼명, '기준 문자', 자른 후 출력할 위치)

 

적용 예시

email 칼럼에 들어있는 spartacodingclub@naver.com와 같은 이메일들을 @단위로 쪼개서 naver.com 만 보고 싶을 때

 

방법 1

SUBSTRING_INDEX(email, '@', 2) 

해석 : email을 @을 기준으로 잘라서 2번째에 있는 걸 출력해라

출력 값 : naver.com

 

방법 2

SUBSTRING_INDEX(email, '@', -1)

해석 : email을 @을 기준으로 잘라서 끝에 있는 걸 출력해라

출력 값 : naver.com

 

Substring

문자열을 특정 시점부터 특정 지점까지만 출력해라

 

구조 예시

SUBSTRING( 자를 칼럼명, 시점 위치 숫자로, 마지막 위치 숫자로)

 

적용 예시

created_at 칼럼에 들어있는 2020-07-07 15:00:22와 같은 일자-시간에서 날짜만 보고 싶을 때

 

SUBSTRING(created_at,1,10)

해석 : created_at에서 1번째 인 '2'부터 10번째에 위치한 '7'까지 출력해라

출력 값 : 2020-07-07

 

CASE

특정 조건에 따라 데이터를 구분할 때

- python의 if문과 비슷하다고 보면 편하다.

 

구조 예시 - case를 두 가지로 나눌 때

select column1, column2,
	case when column3 > ( 값 ) then '출력문구'
    	else '출력문구2' end
from table

 

구조 예시 - case를 세 가지 이상으로 나눌 때

select column1, column2,
	case when column3 > ( 값 ) then '출력문구'
    	when column3 > ( 값2 ) then '출력문구2'
    	else '출력문구3' end
from table

 

구조 예시 - 깔끔하게 정리할 때 / 실제 사용할 때

select column1, column2,
	(case when column3 > ( 값 ) then '출력문구'
    		when column3 > ( 값2 ) then '출력문구2'
    		else '출력문구3' end) as Partition
from table

case 구문을 하나로 () 묶어주고 as로 alias 별칭을 만들어준다.

 

주의 점🔥

조건을 걸 때마다 when을 써준다. when 절이 끝난다고 해서 콤마를 붙이거나 하지 않는다. (파이썬과 다름)


강의 기록

 

4주차 강의 기록 (1) - [스파르타코딩클럽] 엑셀보다 쉬운 SQL - 서브쿼리 select, where, from, subquery, 구

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기 4주차 - 수강일자 211003 Subquery "쿼리안의 쿼리" 쿼리 여러 개가 포함관계로 구성되어 있다고 보면 편하다. subquery는 select, from, where 모두에 들어갈 수.

slowslow.tistory.com

 

3주차 강의 기록 - [스파르타코딩클럽] 엑셀보다 쉬운 SQL - union all, left join, inner join, 쿼리 실행 순

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기 3주차 - 수강일자 211002 join 두가지 테이블의 key 칼럼을 기준으로 테이블을 연결해서 하나의 테이블로 표기하는 것 - 두 테이블을 실제로 합치는 게

slowslow.tistory.com

 

2주차 강의 기록 - [스파르타코딩클럽] 엑셀보다 쉬운 SQL - 묶기 그루핑하기 group by, 정렬하기 order

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기 2주차 - 수강일자 210921 통계 최대 max () 최소 min () 평균 avg () 갯수세기 count () 묶기 기준 만들기 칼럼(필드) 내 항목으로 그루핑하기 group by 칼럼명 gr.

slowslow.tistory.com

 

1주차 강의 기록 - [스파르타코딩클럽] 엑셀보다 쉬운 SQL - 기본 문법, where, 같다 다르다, 중복 데

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기 1주차 - 수강일자 210920 기본 쿼리문 : 데이터베이스에 명령을 내리는것 CRUD 네가지 메인 액션이있지만 DB관련 직종이 아닌이상 R(read)만 제대로 하면

slowslow.tistory.com

 

+ Recent posts