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/원주율