데이터 타입

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") ABCAZ 로 바꿔 치환

LOCATE

예시

! 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


#SQL