侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 292 篇文章
  • 累计创建 132 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

MySql数学函数的使用方式

孔子说JAVA
2022-09-10 / 0 评论 / 1 点赞 / 31 阅读 / 6,676 字 / 正在检测是否收录...

MySQL数据库中提供了很丰富的函数,这些函数可以帮助用户更加方便的处理表中的数据,他们会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。SELECT语句及其条件表达式都可以使用这些函数。同时,INSERT 、UPDATE、DELECT语句及其条件表达式也可以使用这些函数。本文主要讲解数学函数,函数列表如下:

函数名称 作 用
ABS 求绝对值
SQRT 求二次方根
MOD 求余数
CEIL 和 CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整
FLOOR 向下取整,返回值转化为一个BIGINT
RAND 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列
ROUND 对所传参数进行四舍五入
SIGN 返回参数的符号
POW 和 POWER 两个函数的功能相同,都是所传参数的次方的结果值
SIN 求正弦值
ASIN 求反正弦值,与函数 SIN 互为反函数
COS 求余弦值
ACOS 求反余弦值,与函数 COS 互为反函数
TAN 求正切值
ATAN 求反正切值,与函数 TAN 互为反函数
COT 求余切值

1、ABS 绝对值函数

绝对值函数 ABS(x) 作用是返回 x 的绝对值。正数的绝对值是其本身,负数的绝对值为其相反数,0 的绝对值是 0。

mysql> SELECT ABS(5),ABS(-2.4),ABS(-24),ABS(0);
+--------+-----------+----------+--------+
| ABS(5) | ABS(-2.4) | ABS(-24) | ABS(0) |
+--------+-----------+----------+--------+
|      5 |       2.4 |       24 |      0 |
+--------+-----------+----------+--------+
1 row in set (0.10 sec)

由运行结果可知,5 的绝对值为 5,-2.4 的绝对值为 2.4,-24 的绝对值为 24,0 的绝对值是 0。

2、SQRT 平方根函数

平方根函数 SQRT(x) 返回非负数 x 的二次方根。负数没有平方根,返回结果为 NULL。

mysql> SELECT SQRT(25),SQRT(120),SQRT(-9);
+----------+--------------------+----------+
| SQRT(25) | SQRT(120)          | SQRT(-9) |
+----------+--------------------+----------+
|        5 | 10.954451150103322 |     NULL |
+----------+--------------------+----------+
1 row in set (0.06 sec)

由运行结果可知,5 的平方等于 25,因此 25 的平方根为 5;120 的平方根为 10.954451150103322;而负数没有平方根,因此 -9 返回的结果为 NULL。

3、MOD 求余函数

求余函数 MOD(x,y) 返回 x 被 y 除后的余数,MOD() 对于带有小数部分的数值也起作用,它返回除法运算后的余数。

mysql> SELECT MOD(63,8),MOD(120,10),MOD(15.5,3);
+-----------+-------------+-------------+
| MOD(63,8) | MOD(120,10) | MOD(15.5,3) |
+-----------+-------------+-------------+
|         7 |           0 |         0.5 |
+-----------+-------------+-------------+
1 row in set (0.03 sec)

由运行结果可知,63 除以 8 余数是 7,120 除以 10 余数是 0,15.5 除以 3 余数是 0.5。

4、CEIL 向上取整函数

向上取整函数 CEIL(x) 和 CEILING(x) 的意义相同,返回不小于 x 的最小整数值,返回值转化为一个 BIGINT。

mysql> SELECT CEIL(-2.5),CEILING(2.5);
+------------+--------------+
| CEIL(-2.5) | CEILING(2.5) |
+------------+--------------+
|         -2 |            3 |
+------------+--------------+
1 row in set (0.00 sec)

由执行结果可知,-2.5 为负数,不小于 -2.5 的最小整数为 -2,因此返回值为 -2;不小于 2.5 的最小整数为 3,因此返回值为 3。

5、FLOOR 向下取整函数

向下取整函数 FLOOR(x) 返回小于 x 的最大整数值。

mysql> SELECT FLOOR(5),FLOOR(5.66),FLOOR(-4),FLOOR(-4.66);
+----------+-------------+-----------+--------------+
| FLOOR(5) | FLOOR(5.66) | FLOOR(-4) | FLOOR(-4.66) |
+----------+-------------+-----------+--------------+
|        5 |           5 |        -4 |           -5 |
+----------+-------------+-----------+--------------+
1 row in set (0.00 sec)

由运行结果可知,小于 5,5.66,-4,-4.66 的最大整数依次是 5,5,-4,-5。

6、RAND 随机数函数

随机数函数 RAND() 被调用时,可以产生一个在 0 和 1 之间的随机数。

mysql>  SELECT RAND(), RAND(), RAND();
+------------------+-----------------+------------------+
| RAND()           | RAND()          | RAND()           |
+------------------+-----------------+------------------+
| 0.45464584925645 | 0.1824410643265 | 0.54826780459682 |
+------------------+-----------------+------------------+
1 row in set (0.00 sec) 

由运行结果可知,每次调用 RAND() 函数,都会随机生成一个 0~1 之间的随机数 。

当使用整数作为参数调用时,RAND() 使用该值作为随机数的种子发生器。每次种子使用给定值生成,RAND() 将产生一个可重复的系列数字:

mysql> SELECT RAND(1),RAND(),RAND(1);
+---------------------+--------------------+---------------------+
| RAND(1)             | RAND()             | RAND(1)             |
+---------------------+--------------------+---------------------+
| 0.40540353712197724 | 0.7901452330780637 | 0.40540353712197724 |
+---------------------+--------------------+---------------------+
1 row in set (0.00 sec)

由运行结果可知,当向 RAND() 函数中传入一个整数作为参数是,RAND() 函数产生的随机数可以重复。

7、ROUND 四舍五入函数

四舍五入函数 ROUND(x) 返回最接近于参数 x 的整数;ROUND(x,y) 函数对参数x进行四舍五入的操作,返回值保留小数点后面指定的y位。

mysql> SELECT ROUND(-6.6),ROUND(-8.44),ROUND(3.44);
+-------------+--------------+-------------+
| ROUND(-6.6) | ROUND(-8.44) | ROUND(3.44) |
+-------------+--------------+-------------+
|          -7 |           -8 |           3 |
+-------------+--------------+-------------+
1 row in set (0.00 sec)

从执行结果可以看出,ROUND(x)函数将值x四舍五入之后保留了整数部分。

mysql> SELECT ROUND(-6.66,1),ROUND(3.33,3),ROUND(88.66,-1),ROUND(88.46,-2);
+----------------+---------------+-----------------+-----------------+
| ROUND(-6.66,1) | ROUND(3.33,3) | ROUND(88.66,-1) | ROUND(88.46,-2) |
+----------------+---------------+-----------------+-----------------+
|           -6.7 |         3.330 |              90 |             100 |
+----------------+---------------+-----------------+-----------------+
1 row in set (0.00 sec)

从执行结果可以看出,根据参数y值,将参数x四舍五入后得到保留小数点后y位的值,x值的小数位不够y位的补零;如果y为负值,则保留小数点左边y位,先进行四舍五入操作,再将相应的位数值取零。

8、SIGN 符号函数

符号函数 SIGN(x) 返回参数的符号,x 的值为负、零和正时返回结果依次为 -1、0 和 1。

mysql> SELECT SIGN(-6),SIGN(0),SIGN(34);
+----------+---------+----------+
| SIGN(-6) | SIGN(0) | SIGN(34) |
+----------+---------+----------+
|       -1 |       0 |        1 |
+----------+---------+----------+
1 row in set (0.00 sec)

由执行结果可知,SIGN(-6) 返回 -1,SIGN(0) 返回 0,SIGN(34) 返回 1。

9、POW 求次方函数

POW(x,y) 函数和 POWER(x,y) 函数用于计算 x 的 y 次方。

mysql> SELECT POW(5,-2),POW(10,3),POW(100,0),POWER(4,3),POWER(6,-3);
+-----------+-----------+------------+------------+----------------------+
| POW(5,-2) | POW(10,3) | POW(100,0) | POWER(4,3) | POWER(6,-3)          |
+-----------+-----------+------------+------------+----------------------+
|      0.04 |      1000 |          1 |         64 | 0.004629629629629629 |
+-----------+-----------+------------+------------+----------------------+
1 row in set (0.00 sec)

10、SIN 求正弦值函数

正弦函数 SIN(x) 返回 x 的正弦值,其中 x 为弧度值。

mysql> SELECT SIN(1),SIN(0.5*PI());
+--------------------+---------------+
| SIN(1)             | SIN(0.5*PI()) |
+--------------------+---------------+
| 0.8414709848078965 |             1 |
+--------------------+---------------+
1 row in set (0.15 sec)

提示:PI() 函数返回圆周率(3.141593)

11、ASIN 求反正弦值函数

反正弦函数 ASIN(x) 返回 x 的反正弦值,若 x 不在 -1 到 1 的范围之内,则返回 NULL。

mysql> SELECT ASIN(0.8414709848078965),ASIN(2);
+--------------------------+---------+
| ASIN(0.8414709848078965) | ASIN(2) |
+--------------------------+---------+
|                        1 |    NULL |
+--------------------------+---------+
1 row in set (0.03 sec)

由结果可以看到,函数 ASIN 和 SIN 互为反函数,ASIN(2) 中的参数 2 超出了正弦值的范围,因此返回 NULL。

12、COS 余弦函数

余弦函数 COS(x) 返回 x 的余弦值,x 为弧度值。

mysql> SELECT COS(1),COS(0),COS(PI());
+--------------------+--------+-----------+
| COS(1)             | COS(0) | COS(PI()) |
+--------------------+--------+-----------+
| 0.5403023058681398 |      1 |        -1 |
+--------------------+--------+-----------+
1 row in set (0.03 sec)

由结果可以看到,COS(0) 的值为 1,COS(PI()) 的值为 -1,COS(1) 的值为 0.5403023058681398。

13、ACOS 反余弦函数

反余弦函数 ACOS(x) 。x 值的范围必须在 -1 和 1 之间,否则返回 NULL。

mysql> SELECT ACOS(2),ACOS(1),ACOS(-1);
+---------+---------+-------------------+
| ACOS(2) | ACOS(1) | ACOS(-1)          |
+---------+---------+-------------------+
|    NULL |       0 | 3.141592653589793 |
+---------+---------+-------------------+
1 row in set (0.01 sec)

由结果可以看到,函数 ACOS 和 COS 互为反函数。

14、TAN 正切函数

正切函数 TAN(x) 返回 x 的正切值,x 为给定的弧度值。

mysql> SELECT TAN(1),TAN(0);
+--------------------+--------+
| TAN(1)             | TAN(0) |
+--------------------+--------+
| 1.5574077246549023 |      0 |
+--------------------+--------+
1 row in set (0.03 sec)

由运行结果可知,TAN(1) 的值为 1.5574077246549023,TAN(0) 的值为 0。

15、TAN 反正切函数

反正切函数 ATAN(x) 返回 x 的反正切值,正切为 x 的值。

mysql> SELECT ATAN(1.5574077246549023),ATAN(0);
+--------------------------+---------+
| ATAN(1.5574077246549023) | ATAN(0) |
+--------------------------+---------+
|                        1 |       0 |
+--------------------------+---------+
1 row in set (0.05 sec)

由结果可以看到,函数 ATAN 和 TAN 互为反函数。

16、COT 余切函数

余切函数 COT(x) 返回 x 的余切值,x 是给定的弧度值。

mysql> SELECT COT(1);
+--------------------+
| COT(1)             |
+--------------------+
| 0.6420926159343306 |
+--------------------+
1 row in set (0.00 sec)

由运行结果可知,COT(1) 的值为 0.6420926159343306。

1

评论区