Posts MySQL 중급(1)
Post
Cancel

MySQL 중급(1)

1. Ceil(올림), Round(반올림), Truncate(버림)


1.1 실습 데이터 Url


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


3.2 Date_Format

1
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 테이블의 월별 총 수입
This post is licensed under CC BY 4.0 by the author.