1. Ceil(올림), Round(반올림), Truncate(버림)
1.1 실습 데이터 Url
https://demo.phpmyadmin.net/master-config/index.php?route=/database/structure&server=2&db=world
아래의 예제들은 위의 링크에서 SQL탭을 선택 후 질의를 입력 후 실행하면 됨
1.2 Ceil
1
SELECT CEIL(Float)
- Ceil은 실수 데이터를 올림 할때 사용함
1
SELECT CEIL(12.345)
1
13
- 12.345를 올림하여 13이 반환됨
1
2
SELECT CountryCode, Language, Percentage, CEIL(Percentage)
FROM CountryLanguage
- 국가별 언어 사용 비율을 소수 첫번째 자리에서 올림하여 정수로 나타냄
1.3 Round
1
SELECT ROUND(N, D)
- ROUND는 실수 데이터를 반올림 할 때 사용
- N : 대상 실수
- D : 표시할 소수점 자리, D+1자리에서 반올림이 됨
1
SELECT ROund(12.345, 2)
1
12.35
- 12.345를 소수 둘째자리까지 나타내고 셋째자리에서 반올림
SELECT CountryCode, Language, Percentage, ROUND(Percentage, 0)
FROM CountryLanguage
- 국가별 언어 사용 비율을 소수 첫번째 자리에서 반올림하여 정수로 나타냄
1.4 Truncate
1
SELECT TRUNCATE(N, D)
- TRUNCATE는 실수 데이터를 버림 할 때 사용
- N : 대상 실수
- D : 표시할 소수점 자리, D+1자리에서 버림이 됨
1
SELECT TRUNCATE(12.345, 2)
1
12.34
- 12.345를 소수 둘째자리까지 나타내고 셋째자리에서 버림
1
2
SELECT CountryCode, Language, Percentage, TRUNCATE(Percentage, 0)
FROM CountryLanguage
- 국가별 언어 사용 비율을 소수 첫번째자리에서 버림하여 정수로 나타냄
2. Conditional(조건문)
2.1 If
1
IF(조건, 참, 거짓)
- 조건 : 원하는 조건
- 참 : 조건이 참일때 반환하는 것
- 거짓 : 조건이 거짓일때 반환하는 것
1
2
SELECT name, population, IF(population > 1000000, "big city", "small city") AS city_scale
FROM City
- 도시의 인구가 100만이 넘으면 ‘big city’ 그렇지 않으면 ‘small city’를 출력하는 city_scale 컬럼을 추가
2.2 Ifnull
IFNULL(필드명, 대체할 값)
- 필드명 : NULL이 있는지 확인할 필드명
- 대체할 값 : NULL이라면 대체할 값
1
2
SELECT IndepYear, IFNULL(IndepYear, 0) as IndepYear
FROM Country
- 독립년도가 없는(NULL)인 데이터는 0으로 출력
2.3 Case
1
2
3
4
5
6
CASE
WHEN (조건1) THEN (출력1)
WHEN (조건2) THEN (출력2)
...
ELSE (조건에 해당하지 않는 경우 출력 값)
END AS (컬럼명)
- WHEN과 THEN은 한쌍
- WHEN과 THEN은 여러개 사용 가능
- ELSE가 존재하면 모든 조건에 해당하지 않는 경우에 반환 값을 설정 가능
- ELSE가 존재하지 않고, 조건에 맞지 않아서 반환 값이 없으면 NULL를 반환함
1
2
3
4
5
6
7
SELECT 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억 이상(upper 1 bilion), 1억 이상 (upper 100 milion), 1억 이하 (below 100 milion)인 컬럼을 추가하여 출력
3. Date Format
3.1 실습 데이터 Url
https://demo.phpmyadmin.net/master-config/index.php?route=/database/sql&db=sakila
아래의 예제는 위의 링크에서 SQL탭을 선택 후 질의를 입력 후 실행하면 됨
3.2 Date_Format
1
DATE_FORMAT(필드값, 형식)
- DATE_FORMAT : 날짜 데이터에 대한 포멧을 바꿔줌
- 포멧 형식 참조 : https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
1
2
3
SELECT DATE_FORMAT(payment_date, "%Y-%m") AS monthly, SUM(amount) AS amount
FROM payment
GROUP BY monthly
- sakila 데이터 베이스의 payment 테이블의 월별 총 수입