目录
mySQL函数-数学函数
数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数、三角函数(包括正弦函数、余弦函数、正切函数、余切函数等)、对数函数、随机数函数等。在有错误产生时,数学函数将会返回空值NULL。
1.绝对值函数
绝对值函数ABS(x):返回x的绝对值。
【例子1】求2,-3.3,-33的绝对值。
mysql> select ABS(2),ABS(-3.3),ABS(-33);
+--------+-----------+----------+
| ABS(2) | ABS(-3.3) | ABS(-33) |
+--------+-----------+----------+
| 2 | 3.3 | 33 |
+--------+-----------+----------+
1 row in set (0.05 sec)
2.返回圆周率的函数
圆周率的函数PI():返回圆周率的值,默认显示小数位数是6位
【例子2】返回圆周率的值,输入的SQL语句如下:
mysql> select pi();
+----------+
| pi() |
+----------+
| 3.141593 |
+----------+
1 row in set (0.03 sec)
3.平方根函数
平方根函数SQRT(x):返回非负数x的二次方根。
【例子3】求9,40和-49的二次方根,输入语句如下:
mysql> select SQRT(9),SQRT(40),SQRT(-49);
+---------+-------------------+-----------+
| SQRT(9) | SQRT(40) | SQRT(-49) |
+---------+-------------------+-----------+
| 3 | 6.324555320336759 | NULL |
+---------+-------------------+-----------+
1 row in set (0.27 sec)
4.求余函数
求余函数MOD(x,y):MOD(x,y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,它返回除法运算后的精确余数。
【例子4】对MOD(31,8),MOD(234,10),MOD(45.5,6)进行求余运算,输入语句如下:
mysql> select MOD(31,8),MOD(234,10),MOD(45.6,6);
+-----------+-------------+-------------+
| MOD(31,8) | MOD(234,10) | MOD(45.6,6) |
+-----------+-------------+-------------+
| 7 | 4 | 3.6 |
+-----------+-------------+-------------+
1 row in set (0.00 sec)
5.获取整数的函数
CEIL(x)、CEILING(x)和 FLOOR(x)
CEIL(x)和 CEILING(x)意义相同,返回不小于ⅹ的最小整数值,返回值转化为一个 BIGINT。
【例5-1】使用 CEILING函数返回最小整数,输入语句如下:
mysql> select CEIL(-3.35),CEILING(3.35);
+-------------+---------------+
| CEIL(-3.35) | CEILING(3.35) |
+-------------+---------------+
| -3 | 4 |
+-------------+---------------+
1 row in set (0.00 sec)
FLOOR(x)返回不大于x的最大整数值,返回值转化为一个 BIGINT。
【例5-2】使用 FLOOR函数返回最大整数,输入语句如下:
mysql> select floor(3.35);
+-------------+
| floor(3.35) |
+-------------+
| 3 |
+-------------+
1 row in set (0.00 sec)
6.获取随机数的函数
RAND():返回一个随机浮点值v范围在0到1之间(即0≤v≤1.0)。
【例6-1】使用 RAND()函数产生随机数,输入语句如下:
mysql> select rand(),rand(),rand();
+--------------------+------------------+--------------------+
| rand() | rand() | rand() |
+--------------------+------------------+--------------------+
| 0.8640405590311071 | 0.85661642146913 | 0.6909604609859739 |
+--------------------+------------------+--------------------+
1 row in set (0.03 sec)
RAND(x):指定一个整数参数x,则它被用作种子值,用来产生重复序列。
【例6-2】使用RAND(x)函数产生随机数,输入语句如下:
mysql> select rand(10),rand(10),rand();
+--------------------+--------------------+--------------------+
| rand(10) | rand(10) | rand() |
+--------------------+--------------------+--------------------+
| 0.6570515219653505 | 0.6570515219653505 | 0.8849530712561244 |
+--------------------+--------------------+--------------------+
1 row in set (0.00 sec)
7.四舍五入函数
ROUND(x)、ROUND(x,y)和 TRUNCATE(x,y)
ROUND(x):返回最接近与参数x的整数,对x值进行四舍五入。
ROUND(x,y):返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位。
TRUNCATE(x,y):TRUNCATE(x,y)返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。
8.符号函数
SIGN(x):返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1
【例子8】使用SGN()函数返回参数的符号,输入语句如下。
mysql> select sign(-21),sign(0),sign(21);
+-----------+---------+----------+
| sign(-21) | sign(0) | sign(21) |
+-----------+---------+----------+
| -1 | 0 | 1 |
+-----------+---------+----------+
1 row in set (0.00 sec)
9.幂运算函数
POW(x,y)和POWER(x,y):返回x的y次乘方的结果值
【例子9-1】使用POW和POWER函数进行乘方运算
mysql> select POW(2,2),POWER(2,2),POW(2,-2),POWER(2,-2);
+----------+------------+-----------+-------------+
| POW(2,2) | POWER(2,2) | POW(2,-2) | POWER(2,-2) |
+----------+------------+-----------+-------------+
| 4 | 4 | 0.25 | 0.25 |
+----------+------------+-----------+-------------+
1 row in set (0.01 sec)
EXP(x):e的x乘方后的值
【例子9-2】使用EXP函数计算e的乘方,输入语句如下:
mysql> select exp(3),exp(-3),exp(0);
+--------------------+----------------------+--------+
| exp(3) | exp(-3) | exp(0) |
+--------------------+----------------------+--------+
| 20.085536923187668 | 0.049787068367863944 | 1 |
+--------------------+----------------------+--------+
1 row in set (0.20 sec)
10.对数运算函数
LOG(x):返回x的基数为10的对数
LOG10(x):返回x的自然对数,x相对于基数e的对数
11.角度与弧度相互转换的函数
RADIANS(x) :将参数x由角度转化为弧度
DEGREES(x):将参数x由弧度转化为角度
12.正弦函数和反正弦函数
SIN(x):返回x正弦,其中x为弧度值
ASIN(x):返回x的反正弦,即正弦为x的值。若x不在-1到1的范围内,则返回NULL.
13.余弦函数 和反余弦函数
COS(x):返回x余弦,其中x为弧度值
ACOS(x):返回x的反余弦,即余弦为x的值。若x不在-1到1的范围内,则返回NULL.
14.正切函数、反正切函数和余切函数
TAN(x):返回x正切,其中x为弧度值
ATAN(x):返回x反正切,其中x为弧度值
COT(x):返回x余切,其中x为弧度值