1. 오늘 한일
오늘은 스파르타코딩클럽 사이트에 있는 ' 엑셀보다 쉽고 빠른 SQL 3주차' 시청하고 공부했습니다.
2. 배운내용
■ SQL 구조 복습하자.
1) SQL 기본 구조 복습 및 데이터 조회 조건과 매칭해보기
(1) SQL 문의 기본 구조
- 데이터를 줘야하는 가장 기본문 'select'
- 어떤 테이블에서 가져올지 'from'
- 조건을 주는 'where'
- 어떤 범주별로 계산을 해줄 떄 사용하는 'group by'
- Query 결과를 정렬 해주는 'order by'
■ 업무 필요한 문자 포맷이 다를 떄, SQL 로 가공하기 (REPLACE, SUBSTRING, CONCAT)
1) 특정 문자를 다른 문자로 바꾸기
(1) SQL 에서는 특정 문자를 다른 것으로 바꿀 수 있는 기능을 제공한다.
(2) 함수명 : replace
- 사용 방법 : replace(바꿀 컬럼, 현재 값, 바꿀 값)
2) 원하는 문자만 남기기
(1) SQL 에서는 특정 문자만을 고라서 조회할 수 있는 기능을 제공한다.
(2) 함수명 : substring(substr)
- 사용 방법 : substr(조회 할 컬럼, 시작 위치, 글자수)
3) 여러 컬럼의 문자를 합치기
(1) SQL 에서는 여러 컬럼의 값을 하나로 합칠 수 있는 기능을 제공한다.
(2) 함수명 : concat
- 사용 방법 : concat (붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3 ....)
■ [실습] 문자데이터를 바꾸고, GROUP BY 사용하기
1) [실습] 서울 지역의 음식 타입별 평균 음식 주문금액 구하기 (출력: '서울', '타입', '평균 금액')
2) [실습] 이메일 도메인별 고객 수와 평균 연령 구하기
3) [실습] '[지역(시도)] 음식점이름 (음식종류)' 컬럼을 만들고, 총 주문건수 구하기
■ 조건에 따라 포맷을 다르게 변경해야 한다면 (IF, CASE)
1) 조건에 따라 다른 방법을 적용하고 싶을 떄 - IF 문 기초
(1) IF 문은 원하는 조건에 충족할 때 적용할 방법과 아닌 방법을 지정해 줄 수 있다.
(2) 사용 방법 : if(조건, 조건을 충족할 때, 조건을 충족하지 못할때.)
- [실습 01] 음식 타입을 'korean'일 때는 '한식', 'korean' 이 아닌 경우에는 '기타' 라고 지정
- [실습 02] ‘문곡리’ 가 평택에만 해당될 때, 평택 ‘문곡리’ 만 ‘문가리’ 로 수정
- [실습 02] 잘못된 이메일 주소 (gmail) 만 수정을 해서 사용
2) 조건을 여러가지 지정하고 싶을 때 - CASE 문 기초
(1) Case 문은 각 조건별로 적용 할 값을 지정해 줄 수 있습니다.
(2) 사용 방법 : case [when 조건 the 값(수식)1] [when 조건 the 값(수식)2][else 값(수식)] end
(※ [ ] 는 알아보기 좋으라고 넣은 것 식에 넣으면 안됨!!!!)
(※ 이름과 같이 다른 언어의 케이스문 이랑 동일한 용도인거 같다.)
- [실습 01] 음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Japanese’ 혹은 ‘Chienese’ 일 때는 ‘아시아’, 그 외에는 ‘기타’ 라고 지정
- [실습 02] 음식 단가를 주문 수량이 1일 때는 음식 가격, 주문 수량이 2개 이상일 때는 음식가격/주문수량 으로 지정
- [실습 03] 주소의 시도를 ‘경기도’ 일때는 ‘경기도’, ‘특별시’ 혹은 ‘광역시’ 일 때는 붙여서, 아닐 때는 앞의 두 글자만 사용
■ [실습] SQL로 간단한 User Segmentation 해보기
1) [실습] 10세 이상, 40세 미만의 고객의 나이와 성별로 그룹 나누기 (이름도 같이 출력)
2) [실습] 음식 단가, 음식 종류 별로 음식점 그룹 나누기.
■ [실습] 조건문으로 서로 다른 식을 적용한 수수료 구해보기
1) [실습] 지역과 배달시간을 기반으로 배달수수료 구하기 (식당 이름, 주문 번호 함께 출력)
2) [실습] 주문 시기와 음식 수를 기반으로 배달할증료 구하
1번 실습 에러 영상처럼 작성하였는데 에러 발생.
원인 : 손가락 이슈(오타)
해결 방법 : 여러번 더 확인해보자. 오타가 나면 자동완성이 안되는데
일단 자동완성이 안되면 한번더 확인해보다.
■ SQL문에 문제가 없는 것 같은데 왜 오류가 나나요_ (Data Type 오류 해결하기)
1) 문자/숫자 계싼을 했더니 오류가 발생.
(1)문자와 숫자를 혼합해서 사용 할 때에는 데이터 타입을 변경해주어야 한다.
- 문법
cast(데이터 as decimal), cast(데이터 as char)
- 숫자로 변경
cast(if(rating='Not given', '1', rating) as decimal)
- 문자로 변경
concat(restaurant_name, '-', cast(order_id as char))
■ [숙제] 배달시간이 늦었는지 판단하는 값을 만들기.
3. 결론
다음주도 열심히 하곘습니다.!!
'TIL' 카테고리의 다른 글
2024-10-15 (0) | 2024.10.15 |
---|---|
2024-10-14 (0) | 2024.10.14 |
2024-10-10 (1) | 2024.10.10 |
2024-10-08 (3) | 2024.10.08 |
2024-10-07 (0) | 2024.10.07 |