데이터 타입
MySQL 내의 다양한 타입의 데이터는 함수를 사용하여 변형할 수 있습니다.
문자형
함수 | 활용 예시 | 설명 |
---|---|---|
LOCATE |
LOCATE("A", "ABC") |
ABC 에서 A 는 몇 번째에 위치해 있는지 검색해 위치 반환 |
SUBSTRING |
SUBSTRING("ABC", 2) |
ABC 에서 2번째 문자부터 반환 |
RIGHT |
RIGHT("ABC", 1) |
ABC 에서 오른쪽에서 1번째 문자까지 반환 |
LEFT |
LEFT("ABC", 1) |
ABC 에서 왼쪽에서 1번째 문자까지 반환 |
UPPER |
UPPTER("abc") |
abc 를 대문자로 바꿔 반환 |
LOWER |
LOWER("ABC") |
ABC 를 소문자로 바꿔 반환 |
LENGTH |
LENGTH("ABC") |
ABC 의 글자 수를 반환 |
CONCAT |
CONCAT("ABC", "DEF") |
ABC 문자열과 CDF 문자열을 합쳐 반환 |
REPLACE |
REPLACE("ABC","A","Z") |
ABC 의 A 를 Z 로 바꿔 치환 |
LOCATE
- 문자가 여러 개라면 가장 먼저 찾은 문자의 위치를 가져온다.
- 만약 찾는 문자가 없다면 0을 가져온다.
예시
! 300
SELECT part, LOCATE('i', lyric)
FROM bts_music.butter;
결과
! 200
SUBSTRING
- 만약 입력한 숫자가 문자열의 길이보다 크다면 아무것도 가져오지 않습니다.
예시
! 300
SELECT part, SUBSTRING(lyric, 3)
FROM bts_music.butter;
결과
! 200
RIGHT
, LEFT
예시
! 300
SELECT part, RIGHT(lyric, 3), LEFT(lyric, 3)
FROM bts_music.butter;
결과
! 200
UPPER
, LOWER
예시
! 300
SELECT part, UPPER(lyric), LOWER(lyric)
FROM bts_music.butter;
결과
! 400
LENGTH
예시
! 300
SELECT part, LENGTH(lyric)
FROM bts_music.butter
결과
! 200
CONCAT
예시
! 300
SELECT part, CONCAT(LEFT(lyric, 1), RIGHT(lyric,1)) AS first_last
FROM bts_music.butter;
결과
! 200
REPLACE
예시
! 300
SELECT part, REPLACE(lyric, ' ', '_')
FROM bts_music.butter;
결과
! 300
숫자형
함수 | 활용 | 설명 |
---|---|---|
ABS |
ABS(숫자) |
숫자의 절댓값 반환 |
CEILING |
CEILING(숫자) |
숫자의 정수로 올림해서 반환 |
FLOOR |
FLOOR(숫자) |
숫자를 정수로 내림해서 반환 |
ROUND |
ROUND(숫자, 자릿수) |
숫자를 소수점 자릿수까지 반올림해서 반환 |
TRUNCATE |
TRUNCATE(숫자A, 숫자B) |
숫자 A의 숫자B 제곱 반환 |
POWER |
POWER(숫자A, 숫자B) |
숫자A의 숫자B 제곱 반환 |
MOD |
MOD(숫자A, 숫자B) |
숫자 A를 숫자 B로 나눈 나머지 반환 |
ABS
예시
! 300
SELECT name, friendship, ABS(friendship)
FROM pokemon.mypokemon;
! 300
FLOAT 데이터 타입은 입력값 근사치를 저장합니다.
CEILING
, FLOOR
예시
! 300
SELECT name, friendship, CEILING(friendship), FLOOR(friendship)
FROM pokemon.mypokemon;
결과
!400
ROUND
, TRUNCATE
예시
! 300
SELECT name, friendship, ROUND(friendship, 1), TRUNCATE(friendship, 1)
FROM pokemon.mypokemon
결과
! 400
자릿수에 0 입력 시 소수점 없이 정수만 반환
POWER
예시
! 400
결과
SELECT name, number, POWER(number, 2)
FROM pokemon.mypokemon
! 300
MOD
예시
! 400
SELECT name, number, MOD(number, 2)
FROM pokemon.mypokemon
결과
! 400
날짜형
함수 | 활용 | 설명 |
---|---|---|
NOW |
NOW() |
현재 날짜와 시간 반환 |
CURRENT_DATE |
CURRENT_DATE() |
현재 날짜 반환 |
CURRENT_TIME |
CURRENT_TIME() |
현재 시간 반환 |
YEAR |
YEAR(날짜) |
날짜의 연도 반환 |
MONTH |
MONTH(날짜) |
날짜의 월 반환 |
MONTHNAME |
MONTHNAME(날짜) |
날짜의 월을 영어로 반환 |
DAYNAME |
DAYNAME(날짜) |
날짜의 요일을 영어로 반환 |
DAYOFMONTH |
DAYOFMONTH(날짜) |
날짜의 일 반환 |
DAYOFWEEK |
DAYOFWEEK(날짜) |
날짜의 요일을 숫자로 반환 |
WEEK |
WEEK(날짜) |
날짜가 해당 연도에 몇 번째 주인지 반환 |
HOUR |
HOUR(날짜) |
시간의 시 반환 |
MINUTE |
MINUTE(시간) |
시간의 분 반환 |
SECOND |
SECOND(시간) |
시간의 초 반환 |
DATE_FORMAT |
DATE_FORMAT(날짜/시간, 형식) |
날짜 / 시간의 형식을 형식으로 바꿔 반환 |
DATEDIFF |
DATEDIFF(날짜1, 날짜2) |
날짜1과 날짜2의 차이 반환(날짜1 - 날짜2) |
TIMEDIFF |
TIMEDIFF(시간1, 시간2) |
시간1과 시간2의 차이 반환(시간1 - 시간2) |
NOW
, CURRENT_DATE
, CURRENT_TIME
예시
SELECT NOW(), CURRENT_DATE(), CURRENT_TIME();
결과
! 500
YEAR
, MONTH
, MONTHNAME
예시
SELECT NOW(), YEAR(NOW()), MONTH(NOW()), MONTHNAME(NOW())
결과
! 500
DAYNAME
, DYAOFMONTH
, DAYOFWEEK
, WEEK
예시
SELECT NOW(), DAYNAME(NOW()), DAYOFMONTH(NOW()), DAYOFWEEK(NOW()), WEEK(NOW())
결과
! 500
DATE_FORMAT
예시
SELECT DATE_FORMAT('1996-11-06 17:34:58', '%Y년 %m월 $d일 %H시 %i분 %s초') AS formatted_date;
결과
! 300
DATEDIFF
, TIMEDIFF
예시
SELECT DATEDIFF('2022-01-01 00:00:00', '2021-12-25 12:00:00') AS DATE_DIFF,
TIMEDIFF('2022-01-01 00:00:00', '2021-12-25 12:00:00') AS TIME_DIFF
결과
! 300