DATABASE-Function
Functions
CEIL, ROUND, TRUNCATE는 소수점 올림, 반올림, 버림 함수입니다.
CEIL
CEIL는 실수 데이터를 올림 할 때 사용합니다.
12.345를 올림하여 정수로 나타냄
1
SELECT CEIL(12.345)
국가별 언어 사용 비율을 소수 첫번째자리에서 올림하여 정수로 나타냄
1
2SELECT CountryCode, Language, Percentage, CEIL(Percentage)
FROM countrylanguageROUND
ROUND는 실수데이터를 반올림 할 때 사용합니다.
12.345를 소수 둘째자리까지 나타내고 소수 셋째자리에서 반올림
1
SELECT ROUND(12.345, 2)
국가별 언어 사용 비율을 소수 첫번째자리에서 반올림하여 정수로 나타냄
1
2SELECT CountryCode, Language, Percentage, ROUND(Percentage, 0)
FROM countrylanguage
TRUNCATE
TRUNCATE는 실수 데이터를 버림 할 때 사용합니다.
12.345를 소수 둘째자리까지 나타내고 소수 셋째자리에서 버림
1
SELECT TRUNCATE(12.345, 2)
국가별 언어 사용 비율을 소수 첫번째자리에서 버림하여 정수로 나타냄
1
2SELECT CountryCode, Language, Percentage, TRUNCATE(Percentage, 0)
FROM countrylanguage1
2
3SELECT CountryCode, Language, Percentage, ROUND(Percentage, 0),
TRUNCATE(Percentage, 0)
FROM countrylanguage
DATE_FORMAT
DATE_FORMAT은 날짜 데이터에 대한 포멧을 바꿔줍니다.
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
- sakila 데이터 베이스에서 월별 총 수입
1
2
3SELECT DATE_FORMAT(payment_date, "%Y-%m") AS monthly, SUM(amount) AS amount
FROM payment
GROUP BY monthly
- sakila 데이터 베이스에서 월별 총 수입
조건문 IF, IFNULL, CASE
SQL에서도 다른 언어에서 처럼 조건문 사용이 가능합니다. IF, CASE 에 대해서 설명합니다.
IF(조건, 참, 거짓)
- 도시의 인구가 100만이 넘으면 "big city" 그렇지 않으면 "small city"를 출력하는 city_scale 컬럼을 추가
<!--hexoPostRenderEscape:<figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">SELECT</span> <span class="keyword">name</span>, population, <span class="keyword">IF</span>(population > <span class="number">1000000</span>, <span class="string">"big city"</span>, <span class="string">"small city"</span>) <span class="keyword">AS</span> city_scale</span><br><span class="line"><span class="keyword">FROM</span> city</span><br></pre></td></tr></table></figure>:hexoPostRenderEscape-->
IFNULL(참, 거짓)
- 독립년도가 없는 데이터는 0으로 출력
1
2SELECT IndepYear, IFNULL(IndepYear, 0) as IndepYear
FROM country
- 독립년도가 없는 데이터는 0으로 출력
CASE
1
2
3
4CASE
WHEN (조건1) THEN (출력1)
WHEN (조건2) THEN (출력2)
END AS (컬럼명)- 나라별로 인구가 10억 이상, 1억 이상, 1억 이하인 컬럼을 추가하여 출력
1
2
3
4
5
6
7SELECT name, population,
CASE
WHEN population > 1000000000 THEN "upper 1 bilion"
WHEN population > 100000000 THEN "upper 100 milion"
ELSE "below 100 milion"
END AS result
FROM country
- 나라별로 인구가 10억 이상, 1억 이상, 1억 이하인 컬럼을 추가하여 출력