[내배캠/TIL(5/25)]엑셀보다 쉬운 SQL-응용

손홍서·2022년 5월 25일
1

MySQL

목록 보기
3/4
post-thumbnail

day 25 TIL

day25 느낀점

오늘은 데이터베이스를 완강하고 간단한 연습을 진행하였다. 프로젝트에서 사용을 할지 모르겠지만 꽤나 재미있었다. 그리고 spring 기본 annotation 정리를 마쳤다.
https://velog.io/@hongseoda/Spring-annotation-%EC%A0%95%EB%A6%AC
아직 사용에 능숙하지않지만 계속 연습하는 중이다. 내일부터는 스프링에 집중해서 공부를 진행해야겠다.

문자열 처리

SUBSTRING_INDEX

email 처리할때 유용

@를 기준으로 텍스트를 쪼개고 첫번째 조각을 가져와
ex. sparta@gmail.com

select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users

-> sparta

@를 기준으로 텍스트를 쪼개고 마지막 조각을 가져와

select user_id, email, SUBSTRING_INDEX(email, '@', -1) from users

-> gmail.com

SUBSTRING

문자열 일부만 출력하기
substring(field,start,cnt): field에서 start지점에 속하는 문자부터 포함해서 cnt만큼 가져와라
created_at 예시: 2022-05-25 11:36:58

select order_no, created_at, substring(created_at,1,10) as date from orders

-> 2022-05-25

CASE 문법

case는 if-else문과 비슷하게 사용한다.
경우에 따라 원하는 값을 새 필드에 출력할 수 있다.

select level, count(*) as cnt from (
	select pu.point_user_id, pu.point,
	case 
	when pu.point > 10000 then '1만 이상'
	when pu.point > 5000 then '5천 이상'
	else '5천 미만'
	END as lv
	from point_users pu
) a
group by lv

++ with 절

with table1 as (
	select pu.point_user_id, pu.point,
	case 
	when pu.point > 10000 then '1만 이상'
	when pu.point > 5000 then '5천 이상'
	else '5천 미만'
	END as lv
	from point_users pu
)

select level, count(*) as cnt from table1
group by lv
profile
Hello World!!

1개의 댓글

comment-user-thumbnail
2022년 5월 26일

sql 재밌죠 ㅎㅎㅎ 꼭 프로젝트 아니더라도 나중에 개발자 취업하셔서 실무에 많이 쓰실 거예요!

답글 달기