[SQL] 3주차 강의 정리 (1) - REPLACE, SUBSTR, CONCAT

민지·2025년 1월 9일
0

SQL

목록 보기
3/4
post-thumbnail

3주차 목표

  • Query 결과를 사용할 수 있도록 문자 다듬기
  • 수치 계산 및 문자를 다듬을 때, 조건별로 다르게 적용하기
  • 수치 계산과 문자 연산이 되지 않는 경우를 배우고 에러 수정하기

replace로 바뀐 상점 이름, 지역 이름을 한 번에 SQL로 바꾸기

[실습1]
식당 명의 Blue Ribbon을 Pink Ribbon으로 바꾸기
Replace(바꿀 컬럼, 현재 값, 바꿀 값) *별칭 설정

[실습2]
주소의 문곡리를 문가리로 바꾸기


substr로 원하는 문자만 남기기
전체 데이터가 아닌 특정문자만 필요할 때 사용

substr(조회할 컬럼, 시작 위치, 글자 수)

[실습]
서울 음식점들의 주소를 전체가 아닌 '시도'만 나오게 수정
시작 위치는 1, 글자 수는 2 => 서울만 나옴


concat으로 여러 문자 합치기
예를 들어 서울시에 있는 음식점명을 '[서울] 음식점명'으로 수정하고 싶어요.

사용 방법: concat(붙이고싶은 값 1, 2, 3 ...)

[실습]
서울시에 있는 음식점 '[서울]음식점명'이라고 수정

그냥 냅다 concat으로 '[서울]' 이렇게 연결시켰는데 답 확인해보니 이런 실습이 아니였음
substr도 함께 써야하는 실습!!

그래서 이렇게 수정!


실습

1. 문자 데이터를 바꾸고 Group by 사용하기

[실습1]
서울지역의 음식 타입별 평균 음식 주문 금액 구하기 (출력: '서울','타입','평균 금액
')

약간 헤맸다 일단 SQL에서 순서 짱 중요함!

SELECT - FROM - WHERE - GROUP BY - ORDER BY 인 것 꼭 기억합시다

그리고 컬럼 순서도 맞춰주었으면 더 좋았을 것 같다!
SELECT로 순서 뽑을 때 기억할 것 그리고 SELECT 문 안에서 쉼표로 구분되고
마지막에는 쉼표 찍지 않음!


이메일 도메인별 고객 수와 평균 연령 구하기

Group by에 구구절절 조건 쓰지 않고 line 숫자를 입력해줘도 된다
도메인 별로 그룹을 만들어야하니까 Group by 1!

까먹었던 COUNT 개념 정리
COUNT(DISTINCT 컬럼) = 고유값 세기


'[지역(시도)] 음식점 이름 (음식종류)' 컬럼을 만들고, 총 주문 건수 구하기

복잡하니까 플로우부터 잡기

  • SUBSTR로 '시도' 구해야겠구나
  • CONCAT으로 [ ] 대괄호, (음식종류) 추가해야겠군
  • 총 주문 건수는 어떻게 구하지? food_orders 테이블에서 필요한 컬럼 찾아보자
    -> quantity (주문 수량)을 다 더하면 되지 않을까? (아니었음, 이미 테이블 자체가 음식 주문 테이블이라서 각 로우마다 주문 1건씩을 가지고 있는 상태, 더하는 게 아니라 Group by로 묶어야함)

CONCAT 안에 SUBSTR로 잘 구했는데 총 주문 건수에서 막혔다!!
GROUP BY로 묶어야지 주문 건수를 확인할 수 있음

COUNT(1)하면 전체 데이터 갯수를 구할 수 있음.
COUNT(*)도 사용 가능

GROUP BY로 안 묶으면 테이블에 가장 위의 컬럼 값이 나오니 조심!


3주차 요약

확실히 3주차 되니 어렵다 !!! 실습 중에 다시 풀어보면 어려운 것도 많고 그럼
복습 안했으면 큰일 났을 뻔

0개의 댓글