수학 함수
26.4.1 PI()
원주율을 계산하는 함수입니다.
| 콘솔 실습 화면 |
mysql> select pi(), 2*pi();
+----------+----------+
| pi() | 2*pi() |
+----------+----------+
| 3.141593 | 6.283185 |
+----------+----------+
1 row in set (0.00 sec)
26.4.2 POW(X,Y) or POWER(X,Y)
입력된 X의 Y제곱을 계산합니다.
| 콘솔 실습 화면 |
mysql> SELECT POW(2,2), POW(2,-2);
+----------+-----------+
| POW(2,2) | POW(2,-2) |
+----------+-----------+
| 4 | 0.25 |
+----------+-----------+
1 row in set (0.00 sec)
26.4.3 MOD(분자, 분모)
연산자 %와 같이 입력된 분자를 분모로 나눈 나머지를 구합니다.
| 콘솔 실습 화면 |
mysql> SELECT MOD(234, 10), 253 % 7, MOD(29,9), 29 MOD 9;
+--------------+---------+-----------+----------+
| MOD(234, 10) | 253 % 7 | MOD(29,9) | 29 MOD 9 |
+--------------+---------+-----------+----------+
| 4 | 1 | 2 | 2 |
+--------------+---------+-----------+----------+
1 row in set (0.00 sec)
26.4.4 SQRT(X)
음수가 아닌 입력된 값의 제곱 루트 값을 출력합니다.
| 콘솔 실습 화면 |
mysql> SELECT SQRT(4), SQRT(20), SQRT(-16);
+---------+------------------+-----------+
| SQRT(4) | SQRT(20) | SQRT(-16) |
+---------+------------------+-----------+
| 2 | 4.47213595499958 | NULL |
+---------+------------------+-----------+
1 row in set (0.00 sec)
26.4.5 TAN(X)
라디안으로 주어진 x의 탄젠트 값을 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT TAN(PI()), TAN(PI()+1);
+-------------------------+--------------------+
| TAN(PI()) | TAN(PI()+1) |
+-------------------------+--------------------+
| -1.2246467991473532e-16 | 1.5574077246549018 |
+-------------------------+--------------------+
1 row in set (0.01 sec)
26.4.6 SIN(X)
라디안으로 주어진 X의 사인(sin) 값을 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT SIN(PI()), ROUND(SIN(PI()));
+------------------------+------------------+
| SIN(PI()) | ROUND(SIN(PI())) |
+------------------------+------------------+
| 1.2246467991473532e-16 | 0 |
+------------------------+------------------+
1 row in set (0.00 sec)
26.4.7 SIGN(X)
인수의 부호를 -1, 0, 또는 1로 반환합니다. 반환되는 숫자는 각각 음수, 0, 양수를 표시 합니다.
| 콘솔 실습 화면 |
mysql> SELECT SIGN(-32), SIGN(0), SIGN(234);
+-----------+---------+-----------+
| SIGN(-32) | SIGN(0) | SIGN(234) |
+-----------+---------+-----------+
| -1 | 0 | 1 |
+-----------+---------+-----------+
1 row in set (0.01 sec)
26.4.8 COT(X)
입력된 X의 코 탄젠트 값을 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT COT(12);
+---------------------+
| COT(12) |
+---------------------+
| -1.5726734063976893 |
+---------------------+
1 row in set (0.00 sec)
26.4.9 COS(X)
입력된 X의 코사인 값을 반환하는데, 여기에서 X 는 라디안(radian)으로 주어집니다.
| 콘솔 실습 화면 |
mysql> SELECT COS(PI());
+-----------+
| COS(PI()) |
+-----------+
| -1 |
+-----------+
1 row in set (0.00 sec)
26.4.10 ATAN(X)
X의 아크 탄젠트(arc tangent) 값을 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT ATAN(2), ATAN(-2);
+--------------------+---------------------+
| ATAN(2) | ATAN(-2) |
+--------------------+---------------------+
| 1.1071487177940904 | -1.1071487177940904 |
+--------------------+---------------------+
1 row in set (0.00 sec)
26.4.11 ATAN(Y,X), ATAN2(Y,X)
두 변수 X와 Y의 아크 탄젠트 값을 반환합니다. 이것은 Y/X의 아크 탄젠트 값을 계산하 는 방식과 유사하지만, 두 인수의 부호는 결과에 대한 쿼드런트 (quadrant)를 알아내기 위 해 사용된다는 점은 다릅니다.
| 콘솔 실습 화면 |
mysql> SELECT ATAN(-2,2), ATAN2(PI(),0);
+---------------------+--------------------+
| ATAN(-2,2) | ATAN2(PI(),0) |
+---------------------+--------------------+
| -0.7853981633974483 | 1.5707963267948966 |
+---------------------+--------------------+
1 row in set (0.01 sec)
26.4.12 ACOS(X)
X의 아크 코사인 (arc cosine) 값을 반환합니다. 코사인이 X인 값을 반환합니다. 만일 X가 -1에서 1 사이의 범위에 있지 않으면 NULL을 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT ACOS(1), ACOS(1.0001), ACOS(0);
+---------+--------------+--------------------+
| ACOS(1) | ACOS(1.0001) | ACOS(0) |
+---------+--------------+--------------------+
| 0 | NULL | 1.5707963267948966 |
+---------+--------------+--------------------+
1 row in set (0.01 sec)
26.4.13 ASIN(X)
X의 아크 사인 값 (arc sine)을 반환합니다(사인 값이 X인 값) . 만일 X가 -1에서 1 사이의 범위에 있지 않으면 NULL을 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT ASIN(0.2);
+--------------------+
| ASIN(0.2) |
+--------------------+
| 0.2013579207903308 |
+--------------------+
1 row in set (0.00 sec)
mysql> SELECT ASIN('foo');
+-------------+
| ASIN('foo') |
+-------------+
| 0 |
+-------------+
1 row in set, 1 warning (0.00 sec)
mysql> SHOW WARNINGS;
+---------+------+-----------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'foo' |
+---------+------+-----------------------------------------+
1 row in set (0.00 sec)
26.4.14 RADIANS(X)
각도를 라디안으로 변경한 인수 X를 반환합니다(라디안은 180도와 같습니다).
| 콘솔 실습 화면 |
mysql> SELECT RADIANS(90);
+--------------------+
| RADIANS(90) |
+--------------------+
| 1.5707963267948966 |
+--------------------+
1 row in set (0.00 sec)
26.4.15 LOG10(X)
X의 베이스 -10 로그를 반환합니다. LOG10(X)는 LOG(10,X)와 같습니다.
| 콘솔 실습 화면 |
mysql> SELECT LOG10(2), LOG10(100), LOG10(-100);
+--------------------+------------+-------------+
| LOG10(2) | LOG10(100) | LOG10(-100) |
+--------------------+------------+-------------+
| 0.3010299956639812 | 2 | NULL |
+--------------------+------------+-------------+
1 row in set (0.00 sec)
26.4.16 LOG2(X)
X의 베이스 -e 로그를 반환합니다. LOG2()는 스토리지용으로 필요한 비트의 수가 얼마나 되는지를 알아보는 데 유용합니다.
| 콘솔 실습 화면 |
mysql> SELECT LOG2(65536), LOG2(-100);
+-------------+------------+
| LOG2(65536) | LOG2(-100) |
+-------------+------------+
| 16 | NULL |
+-------------+------------+
1 row in set (0.00 sec)
26.4.17 LOG(X), LOG(B,X)
X의 자연 로그를 반환합니다. 매개변수 인자로 2개를 전달하면 부정 베이스(arbitrary base) B에 대한 X의 자연 로그를 반환합니다. LOG(B,X)는 LOG(X)/LOG(B)와 같습 니다.
| 콘솔 실습 화면 |
mysql> SELECT LOG(2), LOG(-2), LOG(2,65536), LOG(10,100);
+--------------------+---------+--------------+-------------+
| LOG(2) | LOG(-2) | LOG(2,65536) | LOG(10,100) |
+--------------------+---------+--------------+-------------+
| 0.6931471805599453 | NULL | 16 | 2 |
+--------------------+---------+--------------+-------------+
1 row in set (0.00 sec)
26.4.18 LN(X)
X의 자연 로그를 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT LN(2), LN(-2);
+--------------------+--------+
| LN(2) | LN(-2) |
+--------------------+--------+
| 0.6931471805599453 | NULL |
+--------------------+--------+
1 row in set (0.01 sec)
26.4.19 FORMAT(X,D)
숫자 X의 형태를 ‘#,###,###.##’로 변경시키고, D 자릿수 위치에서 삭제한 다음에 그 결 과를 스트링으로 반환합니다.
| 콘솔 실습 화면 |
mysql> select format(123456789,'#,###,###.###');
+-----------------------------------+
| format(123456789,'#,###,###.###') |
+-----------------------------------+
| 123,456,789 |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)
26.4.20 EXP(X)
입력된 X의 제곱에 대한 e(자연 로그 근) 값을 반환합니다.
| 콘솔 실습 화면 |
mysql> SELECT EXP(2), EXP(-2), EXP(0);
+------------------+--------------------+--------+
| EXP(2) | EXP(-2) | EXP(0) |
+------------------+--------------------+--------+
| 7.38905609893065 | 0.1353352832366127 | 1 |
+------------------+--------------------+--------+
1 row in set (0.01 sec)
26.4.21 DEGREES(X)
입력된 인수 X를 반환하는데 라디안에서 차수(degree)로 변경된 값을 출력합니다.
| 콘솔 실습 화면 |
mysql> SELECT DEGREES(PI()), DEGREES(PI() / 2);
+---------------+-------------------+
| DEGREES(PI()) | DEGREES(PI() / 2) |
+---------------+-------------------+
| 180 | 90 |
+---------------+-------------------+
1 row in set (0.01 sec)
26.4.22 CRC32(expr)
사이클릭 리던던시 체크 값 (cyclic redundancy check value)을 계산 후에 32비트 부호화되 지 않은 값을 반환합니다. 인수가 NULL이면 NULL을 반환합니다. 인수는 스트링 값이 되어야 합니다.
| 콘솔 실습 화면 |
mysql> SELECT CRC32('MySQL'), CRC32('mysql');
+----------------+----------------+
| CRC32('MySQL') | CRC32('mysql') |
+----------------+----------------+
| 3259397556 | 2501908538 |
+----------------+----------------+
1 row in set (0.02 sec)
26.4.23 RAND( ), RAND(N)
RAND 함수는 0과 1 사이에 있는 임의 부동소수점 하나를 반환합니다. 만일, 인수로 정 수 N을 입력하면 이 값을 기본값으로 하여 반복 시퀀스를 출력합니다.
| 콘솔 실습 화면 |
mysql> SELECT RAND();
+---------------------+
| RAND() |
+---------------------+
| 0.36988361773070283 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT RAND(20);
+---------------------+
| RAND(20) |
+---------------------+
| 0.15888261251047497 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT RAND(20);
+---------------------+
| RAND(20) |
+---------------------+
| 0.15888261251047497 |
+---------------------+
1 row in set (0.00 sec)