수학 함수


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)