[복습]
WHERE = 조건
WHERE 뒤에 컬럼을 쓰고 그 컬럼의 조건을 표시
ex) WHERE age > 30
WHERE name LIKE '김%'
replace(컬럼명 , '바꿀 문자', '바뀐 문자') | 영어, 한글, 숫자 모두 상관없이 ' '작은따옴표가 꼭 들어감 |
LIKE' ' | 마찬가지로 ' '작음따음표가 꼭 들어감 |
substring (substr) (컬럼명, 문자열 시작 위치 수, 문자열 갯수) | (A, 3, 5) A라는 컬럼에서 3번째 글자부터 5개의 글자를 조회 |
CONCAT (붙이고 싶은 값 모두 적으면 됨) | 컬럼 외의 문자를 넣어주고 싶을 때는 숫자, 영어, 한글, 특수문자 상관없이 ' '작은 따옴표를 붙여준다 |
[실습] 서울 지역의 음식 타입별 평균 음식 주문금액 구하기 (출력 : ‘서울’, ‘타입’, ‘평균 금액’)
서울 지역의 // 음식 타입별!! 평균 음식 주문금액
필요한 컬럼 : 주소, 음식 타입, 평균 음식 주문 금액
SELECT SUBSTR(addr,1,2) "지역", //출력할 때 서울이라는 두글자를 출력하기 위해서 substr를 사용
cuisine_type,
AVG(price) "평균 금액" //평균구하는 명령문
FROM food_orders
WHERE addr LIKE '%서울%' //서울에 있는 음식점만 보는 것이기 때문에 조건문을 달아줌
// 주소를 보면 서울 앞에 아무 글자가 없으므로 '서울%' 가능
// %는 아무글자나 와도 된다는 표시
GROUP BY 1, 2 // !!!!묶고 싶은 컬럼을 작성!!!!
// 타입별로만 묶고 싶으면 하나만 작성 (컬럼 내에 중복되는 것 끼리 묶임)
// 두가지 컬럼을 작성하면 두가지 ...??? 둘이 왜 묶어주는거지?
// 1과 2는 SELECT에 적힌 순서로 SUBSTR(addr,1,2), cuisine_type 을 써도 됨
[실습] 이메일 도메인별 고객 수와 평균 연령 구하기
SELECT COUNT(customer_id), //count 안에 있는 컬럼은 굳이 지정하지 않아도 됨 (고객 수라 해서 id를 선정함)
AVG(age),
SUBSTR(email,10) //특정 문자열을 조회하는 것임!! 위치 지정 후 마지막까지 조회하고 싶을 때는 문자열 갯수는 안 적어도 됨
FROM customers
GROUP BY SUBSTR(email,10) //(3)
[실습] ‘[지역(시도)] 음식점이름 (음식종류)’ 컬럼을 만들고, 총 주문건수 구하기
SELECT
CONCAT('[', addr, '] ', restaurant_name, ' (', cuisine_type,')') "음식점", COUNT(*) "주문건수" FROM food_orders WHERE addr LIKE '%도' //이거 왜 안 됨?! |
SELECT
CONCAT('[', SUBSTR(addr,1,2), '] ', restaurant_name, ' (', cuisine_type,')') "음식점", COUNT(*) "주문건수" FROM food_orders GROUP BY 1 //주문 이름 별로 묶어줌 근데 이거 묶는 기준이 뭐임?.. 타입도 중복이 있잖음 |