日期:2014-05-16  浏览次数:20829 次

MySQL统计函数记录——数值函数
可使用常见的算术操作符。注意就 -、 +和 *而言, 若两个参数均为正数,则其计算结果的精确度为 BIGINT (64比特),若其中一个参数为无符号整数, 而其它参数也是整数, 则结果为无符号整数。请参见12.8节,“Cast函数和操作符”。
+
加号:
mysql> SELECT 3+5;
        -> 8
-
减号:
mysql> SELECT 3-5;
        -> -2
-
一元减号。更换参数符号。
mysql> SELECT - 2;
        -> -2
注意:若该 操作符同一个BIGINT同时使用,则返回值也是一个BIGINT。这意味着你应当尽量避免对可能产生–263的整数使用 –。
*
乘号:
mysql> SELECT 3*5;
        -> 15
mysql> SELECT 18014398509481984*18014398509481984.0;
        -> 324518553658426726783156020576256.0
mysql> SELECT 18014398509481984*18014398509481984;
        -> 0
最后一个表达式的结果是不正确的。原因是整数相乘的结果超过了BIGINT 计算的 64比特范围。 (见11.2节,“数值类型”.)
/
除号:
mysql> SELECT 3/5;
        -> 0.60
被零除的结果为 NULL:
mysql> SELECT 102/(1-1);
        -> NULL
只有当执行的语境中,其结果要被转化为一个整数时 ,除法才会和 BIGINT 算法一起使用。
DIV
整数除法。 类似于 FLOOR(),然而使用BIGINT 算法也是可靠的。
mysql> SELECT 5 DIV 2;
        -> 2
12.4.2. 数学函数
若发生错误,所有数学函数会返回 NULL 。
ABS(X)
返回X 的绝对值。
mysql> SELECT ABS(2);
        -> 2
mysql> SELECT ABS(-32);
        -> 32
该函数支持使用BIGINT值。
ACOS(X)
返回X 反余弦, 即, 余弦是X的值。若X 不在-1到 1的范围之内,则返回 NULL 。
mysql> SELECT ACOS(1);
        -> 0
mysql> SELECT ACOS(1.0001);
        -> NULL
mysql> SELECT ACOS(0);
        -> 1.5707963267949
ASIN(X)
返回X 的反正弦,即,正弦为X 的值。若X  若X 不在-1到 1的范围之内,则返回 NULL 。
 
mysql> SELECT ASIN(0.2);
        -> 0.20135792079033
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' |
+---------+------+-----------------------------------------+
ATAN(X)
返回X 的反正切,即,正切为X 的值。
mysql> SELECT ATAN(2);
        -> 1.1071487177941
mysql> SELECT ATAN(-2);
        -> -1.1071487177941
ATAN(Y,X) , ATAN2(Y,X)
返回两个变量X 及Y的反正切。 它类似于 Y 或 X的反正切计算,  除非两个参数的符号均用于确定结果所在象限。
mysql> SELECT ATAN(-2,2);
        -> -0.78539816339745
mysql> SELECT ATAN2(PI(),0);
        -> 1.5707963267949
CEILING(X) CEIL(X)
返回不小于X 的最小整数值。
mysql> SELECT CEILING(1.23);
        -> 2
mysql> SELECT CEIL(-1.23);
        -> -1
这两个函数的意义相同。注意返回值会被转化为一个BIGINT。
COS(X)
返回X 的余弦,其中X在弧度上已知。 
mysql> SELECT COS(PI());
        -> -1
COT(X)
返回X 的余切。
mysql> SELECT COT(12);
        -> -1.5726734063977
mysql> SELECT COT(0);
        -> NULL
CRC32(expr)
计算循环冗余码校验值并返回一个 32比特无符号值。若参数为NULL ,则结果为 NULL。该参数应为一个字符串,而且在不是字符串的情况下会被作为字符串处理(若有可能)。
mysql> SELECT CRC32('MySQL');
        -> 3259397556
mysql> SELECT CRC32('mysql');
        -> 2501908538