더보기

포함 하는 조건을 설정할 때

  • 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

 

+ Recent posts