포함 하는 조건을 설정할 때
- WHERE age in (15, 21, 31)
- cuisine_type in ('Korean', 'Japanese')
범위 조건을 설정할 때
where age between 10 and 20
완전히 똑같지는 않지만, 비슷한 값을 조건으로 설정할 때
- name like '김%' // 김’ 으로 시작하는 이름
- name like '%임' //‘임’ 으로 끝나는 이름
- restaurant_name like '%Next%' //식당 이름에 ‘Next’ 를 포함하는 경우
기본 연산, 합계와 평균 구하기
select sum(food_preparation_time) as total_food_preparation_time,
avg(delivery_time) avg_food_delivery_time
from food_orders
데이터의 갯수 구하기
select count(1) count_of_orders,
count(distinct customer_id) count_of_customers
from food_orders
데이터를 그룹화하기
- 같은 값을 가진 행들을 하나의 그룹으로 묶어서 연산할 수 있다.
select restaurant_name,
max(price) "최대 주문금액"
from food_orders
group by restaurant_name
데이터 정렬하기
select restaurant_name,
max(price) "최대 주문금액"
from food_orders
group by restaurant_name
order by max(price) desc
// desc를 생략하면 오름차순, 추가하면 내림차순 정렬
특정 문자를 다른 문자로 바꾸기
select addr "원래 주소",
replace(addr, '문곡리', '문가리') "바뀐 주소"
from food_orders
where addr like '%문곡리%'
원하는 문자만 남기기
select addr "원래 주소",
substr(addr, 1, 2) "시도"
from food_orders
where addr like '%서울특별시%'
여러 컬럼의 문자를 합치기
select restaurant_name "원래 이름",
addr "원래 주소",
concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
from food_orders
where addr like '%서울%'
If문 예시
select addr "원래 주소",
if(addr like '%평택군%', replace(addr, '문곡리', '문가리'), addr) "바뀐 주소"
from food_orders
where addr like '%문곡리%'
조건을 여러가지 지정하고 싶을 때
select case when cuisine_type='Korean' then '한식'
when cuisine_type in ('Japanese', 'Chinese') then '아시아'
else '기타' end "음식 타입",
cuisine_type
from food_orders