<aside> 💡
오늘의 학습에 대하여
- 어렵지만, 어려운 퀘스트를 해내갈 때의 기쁨이란! 흐뭇흐뭇
- 진도를 빨리 나가고 싶은 한국인 마음 vs 기초를 탄탄하게 다져야지! 위 두가지 자아가 충돌한다. 일단은 마인드 컨트롤 하면서 후자처럼 하려고 노력하는 중이다. </aside>
1. 오늘 학습 한 내용을 나만의 언어로 정리하기
- replace (addr, ‘문곡리’, ‘문가리’): addr컬럼에서 문곡리 문자를 문가리로 바꿔줘
- select addr " 원래주소" replace(addr, '문곡리', '문가리') "바뀐주소" from food_orders where addr like '%문곡리%' 1. 테이블은에서 food_orders 2. 원래주소랑, 바뀐주소 조회할 건데 3. 원래주소에서 문곡리가 포함된 데이터만 조회해줘
- substr(addr, 1, 2) : addr 컬럼에서 1번째부터 2번째 글자까지만 뽑아줘
- substr : substring (sub + string) 문자열의 일부분을 잘라내는 함수
select addr "원래 주소", substr(addr, 1, 2) "시도" from food_orders where addr like '%서울특별시%' 1. food_orders 테이블에서 2. 원래주소랑, 원래주소에서 "시도"만 부분문자열로 뽑아낸 것이랑 조회 할 건데 3. 원래주소에서 서울특별시가 포함된 데이터만 보여줘 - concat(1, ‘이름’, 3) 요소를 다 합쳐줘#데이터 바꿀 때 replace(대체하다)#문자열 이어 붙일 때 concat(concatenate: 이어 붙이다.)
- #문자열 일부 추출할 때 substring(부분문자추출)
- select restaurant_name "원래 이름", addr "원래 주소", concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름" from food_orders where addr like '%서울%' 1. food_orders 테이블에서 2. 음식점 원래이름이랑, 주소랑, 바뀐 이름으로 조회할 건데 3. 바뀐이름은 CONCAT를 활용하는데 CONCAT는 문자 합치기란 뜻이다. 4. 주소가 서울을 포함하는 값만 보여줘 (조건)
- 오늘은 정말이지 어려워~
- 오늘은 난이도가 있어 어려웠지만, QUERY를 적기 전에 흐름을 정리해보고, 어떤 구문(정해진 순서와 규칙)을 적어야 하는지 짧게 작성해보고, 전체구조로 합쳐보는 연습을 의식적으로 많이 하려고 했다.
- 가령 이메일 도메인별 고객 수와 평균 연령 구하기라면
- 어디 테이블에서 가져와야 하지? → customers 테이블
- 어떤 컬럼을 조회해야 하지? , 이때 써야하는 함수가 있다면? → 이메일 (substring 사용해서 도메인만 뽑아야 한다.) → substr(email, 8) → 고객 수 (레코드 데이터 뽑으면 되겠다) count(1) → 평균 연령 avg(age)
- 어떤 조건이 있지? x
- 그룹핑, 정렬이 있나? → group by 도메인
- select substring(email, 10) "도메인", count(1) "고객 수", avg(age) "평균연령" from customers order by 1
2. 학습하며 겪었던 문제점 & 에러
- 문제1) where column like ‘%서울%’ : 특정 패턴이 포함된 문자열을 찾는 도구
- 내가 겪은 문제점?
- like가 헷갈리더라구요?
- 내가 했던 풀이 방식, 왜 틀렸는지?
- where column like ‘%서울%’ 에서
- 서울이 맨 앞에, 맨 뒤에 있어도 추출 되길래 오잉? 싶었다.
- where column like ‘%서울%’ 에서
- 앞으로 어떻게 하면 좋을지?
- 이유는 ‘%서울%’이 서울을 포함한 것 즉, 서울이 앞 또는 뒤에 와도 되며 심지어 없어도 되는 데이터를 조회한거라고 한다! **%(퍼센트)**는 0개 이상의 문자를 포함하는 비슷한 문자열을 찾는 도구!
- 내가 겪은 문제점?
- 문제2) count(1)의 의미가 도대체 뭘까?
- count(1)를 컬럼 quantity랑 헷갈렸다.
- quantity랑은 전혀 상관없고, 컬럼의 데이터 개수(레코드 개수)를 계산하는 것이라고 한다. 따라서 group by 된 것이 컬럼의 합계를 구하는 데 용이하다. 가령 지역 별 데이터 개수 (서울은 ~ , 경기는 ~ )
3. 내일 학습 할 것은 무엇인지
- [ ] 3주차 나머지 강의 완강 가즈아!!
#내일배움캠프 #사전캠프 #TIL
'SQL' 카테고리의 다른 글
| 250521_내일배움캠프_window function(rank, sum), date_format (0) | 2025.05.21 |
|---|---|
| 250516_내일배움캠프_SQL(서브쿼리, groub by, having) (0) | 2025.05.16 |
| 250515_내일배움캠프_SQL(if, case) (0) | 2025.05.15 |
| 250513_내일배움캠프_SQL(2) (0) | 2025.05.13 |
| 250512_내일배움캠프_SQL(1) (0) | 2025.05.12 |