Math 함수

함수 설명 input output
ABS(숫자) 절대값을 반환 정수, 부동소수점 정수, 부동소수점
분자 DIV 분모 분자를 분모로 나눈 몫을 반환 정수, 부동소수점 정수
분자 MOD 분모
MOD(분자, 분모)
분자를 분모로 나눈 나머지를 반환 정수, 부동소수점 정수
분자 % 분모 상동 정수, 부동소수점 정수
GREATEST(숫자1, 숫자2 …) 가장 큰 수를 반환 숫자 형식 숫자 형식
LEAST(숫자1, 숫자2 …) 가장 작은 수를 반환 숫자 형식 숫자 형식
RAND() 랜덤값   0과 1 사이의 난수
CEILING(숫자) 소수점 올림 정수, 부동소수점 정수
FLOOR(숫자) 소수점 내림 정수, 부동소수점 정수
TRUNCATE(숫자, 자릿수) 소수점 이하 자릿수에서 버림 정수, 부동소수점 정수, 부동소수점
ROUND(숫자, 자릿수) 소수점 이하 자릿수에서 반올림 정수, 부동소수점 정수, 부동소수점
SQRT(숫자) 루트 정수, 부동소수점 정수, 부동소수점
POW(숫자1, 숫자2) ‘숫자1’의 ‘숫자2’제곱 정수, 부동소수점 정수, 부동소수점
EXP(숫자) e의 ‘숫자’제곱 정수, 부동소수점 부동소수점
LOG(숫자) 자연로그 정수, 부동소수점 정수, 부동소수점
SIN() 삼각함수 사인 정수, 부동소수점 정수, 부동소수점
COS() 삼각함수 코사인 정수, 부동소수점 정수, 부동소수점
TAN() 삼각함수 탄젠트 정수, 부동소수점 정수, 부동소수점
RADIANS() 각도값을 라디안으로 반환 정수, 부동소수점 정수, 부동소수점
DEGREES() 라디안을 각도값으로 반환 정수, 부동소수점 정수, 부동소수점

기본적인 MATH 함수

ABS() 절대값

주어진 숫자의 절대값을 반환합니다.

1
2
3
4
5
SELECT ABS(-123);
-- >> 123

SELECT ABS(-123.41232);
-- >> 123.41232

DIV(), MOD() 나누기

DIV : 분자를 분모로 나눈 몫을 반환합니다. 분자 DIV 분모 와 같이 사용합니다.
MOD : 분자를 분모로 나눈 나머지를 반환합니다. MOD(분자, 분모) 혹은 분자 MOD 분모 와 같이 사용합니다.

1
2
3
4
5
6
SELECT 10 DIV 3;
-- >> 3
SELECT 10 MOD 3;
-- >> 1
SELECT MOD(10, 3);
-- >> 1

GREATEST(), LEAST() 최대 최소

GREATEST : 주어진 수 중 가장 큰 수를 반환합니다. 정수와 부동소수점 숫자가 함께 있을 경우, 정수도 부동소수점으로 변환하여 비교, 반환합니다.

1
2
3
4
5
6
7
8
SELECT GREATEST(10, 20, 30, 40);
-- >> 40
SELECT GREATEST(0.152, 0, 3.132, 2);
-- >> 3.132
SELECT GREATEST(0.152, 0, 3.132, 4);
-- >> 4.000
SELECT GREATEST(-3, 0, 1);
-- >> 1

LEAST : 주어진 수 중 가장 작은 수를 반환합니다. 정수와 부동소수점 숫자가 함께 있을 경우, 정수도 부동소수점으로 변환하여 비교, 반환합니다.

1
2
3
4
5
6
7
8
SELECT LEAST(10, 20, 30, 40);
-- >> 10
SELECT LEAST(0.152, 1, 3.132, 4);
-- >> 0.152
SELECT LEAST(0.152, 0, 3.132, 4);
-- >> 0.000
SELECT LEAST(-3, 0, 1);
-- >> -3

RAND() 난수

0과 1 사이의 난수를 반환합니다.

1
2
3
4
5
6
7
8
9
SELECT RAND();
-- >> 0.799676899611649
SELECT RAND()*100;
-- >> 97.85801674971172
SELECT ROUND(RAND()*100, 2);
-- >> 49.39
SELECT ROUND(RAND()*100, 0);
-- >> 53
-- 0과 100 사이의 난수와 동일

소수

CEILING() 올림

소수점 아래 수를 올림하여 정수로 만듭니다.

1
2
3
4
SELECT CEILING(1.53);
-- >> 2
SELECT CEILING(1.49);
-- >> 2

FLOOR() 내림

소수점 아래 수를 내림하여 정수로 만듭니다.

1
2
3
4
SELECT FLOOR(1.53);
-- >> 1
SELECT FLOOR(1.49);
-- >> 1

TRUNCATE() 버림

지정한 소수점 이하 자릿수 아래를 버림합니다.

1
2
3
4
5
6
SELECT TRUNCATE(1.53634, 2);
-- >> 1.53
SELECT TRUNCATE(1.53634, 3);
-- >> 1.536
SELECT TRUNCATE(1.53634, 0);
-- >> 1

ROUND() 반올림

지정한 소수점 이하 자릿수에서 반올림합니다.

1
2
3
4
5
6
SELECT ROUND(1.53634, 2);
-- >> 1.54
SELECT ROUND(1.53634, 3);
-- >> 1.536
SELECT ROUND(1.53634, 0);
-- >> 2

루트 제곱 로그

SQRT() 루트

주어진 수의 루트값을 반환합니다.

1
2
3
4
5
6
7
8
SELECT SQRT(4);
-- >> 2
SELECT SQRT(10);
-- >> 3.1622776601683795
SELECT SQRT(9);
-- >> 3
SELECT SQRT(9.123);
-- >> 3.0204304329019065

POW() 제곱

POW(숫자1, 숫자2) 와 같은 형식으로 사용하며 “숫자1의 숫자2 제곱” 수를 반환합니다.

1
2
3
4
5
6
7
8
SELECT POW(2, 2);
-- >> 4
SELECT POW(2, 10);
-- >> 1024
SELECT POW(2, 3.14);
-- >> 8.815240927012887
SELECT POW(2.13, 2);
-- >> 4.536899999999999

EXP() 자연상수 제곱

EXP(숫자) 와 같이 사용하며 “자연상수 e의 숫자 제곱” 수를 반환합니다.
자연상수 e : 오일러 수. 자연로그의 밑. 무리수.

1
2
3
4
SELECT EXP(1);
-- >> 2.718281828459045
SELECT EXP(2);
-- >> 7.38905609893065

LOG() 로그

LOG(숫자) 와 같이 사용하며, 숫자에 대한 자연로그값을 반환합니다.

1
2
3
4
5
6
SELECT LOG(10);
-- >> 2.302585092994046
SELECT LOG(4);
-- >> 1.3862943611198906
SELECT LOG(EXP(1));
-- >> 1

삼각함수

PI() 원주율

원주율(π) 의 값을 반환합니다.

1
2
SELECT PI();
-- >> 3.141593

SIN() 사인

주어진 각도(라디안 단위)에 대해 삼각함수 사인 값을 반환합니다.

1
2
3
4
5
6
7
8
9
10
SELECT SIN(PI());
-- >> 1.2246467991473532e-16
SELECT SIN(PI()/2);
-- >> 1
SELECT SIN(RADIANS(30));
-- >> 0.49999999999999994
SELECT SIN(RADIANS(60));
-- >> 0.8660254037844386
SELECT SIN(RADIANS(90));
-- >> 1

COS() 코사인

주어진 각도(라디안 단위)에 대해 삼각함수 코사인 값을 반환합니다.

1
2
3
4
5
6
7
8
9
10
SELECT COS(PI());
-- >> -1
SELECT COS(PI()/2);
-- >> 6.123233995736766e-17
SELECT COS(RADIANS(30));
-- >> 0.8660254037844387
SELECT COS(RADIANS(60));
-- >> 0.5000000000000001
SELECT COS(RADIANS(90));
-- >> 6.123233995736766e-17

TAN() 탄젠트

주어진 각도(라디안 단위)에 대해 삼각함수 탄젠트 값을 반환합니다.

1
2
3
4
5
6
7
8
9
10
SELECT TAN(PI());
-- >> -1.2246467991473532e-16
SELECT TAN(PI()/2);
-- >> 1.633123935319537e16
SELECT TAN(RADIANS(30));
-- >> 0.5773502691896256
SELECT TAN(RADIANS(60));
-- >> 1.7320508075688767
SELECT TAN(RADIANS(90));
-- >> 1.633123935319537e16

각도와 라디안

RADIANS() 라디안

도(degree) 단위의 각도를 라디안 단위 각도 값으로 반환합니다.

1
2
3
4
5
6
7
8
9
SELECT RADIANS(30);
-- >> 0.5235987755982988
-- 30도에 대한 라디안 값
SELECT RADIANS(60);
-- >> 1.0471975511965976
SELECT RADIANS(90);
-- >> 1.5707963267948966
SELECT RADIANS(180);
-- >> 3.141592653589793

DEGREES() 도

라디안 단위 각도 값을 도(degree) 단위의 각도 값으로 반환합니다.

1
2
3
4
5
6
7
8
SELECT DEGREES(RADIANS(30));
-- >> 29.999999999999996
SELECT DEGREES(RADIANS(60));
-- >> 59.99999999999999
SELECT DEGREES(RADIANS(90));
-- >> 90
SELECT DEGREES(RADIANS(180));
-- >> 180

Reference

MySQL 내장함수 종류 정리 : https://inpa.tistory.com
MySQL 내장 함수 정리 : https://jaehoney.tistory.com/53
자연상수 : https://ko.wikipedia.org/wiki/자연로그의_밑
원주율 : https://ko.wikipedia.org/wiki/원주율

Categories:

Updated: