mysql除以60_MySQL教程60MySQL 数值型函数

ABS函数:求绝对值

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

【实例】求 5、-2.4、-24 和 0 的绝对值,输入的 SQL 语句和执行结果如下所示。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

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

SQRT函数:求二次方根

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

【实例 1】求 25、120 和 -9 的二次平方根,输入的 SQL 语句和执行结果如下所示。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

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

【实例 2】 假设数据表 tb_people 有以下这些数据:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> SELECT * FROMtb_people;+------+------+------------+--------------------+

| id | name | work_date | daily_typing_pages |

+------+------+------------+--------------------+

| 1 | John | 2007-01-24 | 250 |

| 2 | Ram | 2007-05-27 | 220 |

| 3 | Jack | 2007-05-06 | 170 |

| 3 | Jack | 2007-04-06 | 100 |

| 4 | Jill | 2007-04-06 | 220 |

| 5 | Zara | 2007-06-06 | 300 |

| 5 | Zara | 2007-02-06 | 350 |

+------+------+------------+--------------------+

7 rows in set (0.00 sec)

View Code

根据上面的表格,要计算所有的 dialy_typing_pages 的平方根,输入 SQL 语句如下:

mysql> SELECT name, SQRT(daily_typing_pages)-> FROM tb_people;

MOD函数:求余数

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

【实例】对 MOD(63,8)、MOD(120,10)、MOD(15.5,3) 进行求余运算,输入的 SQL 语句和执行结果如下所示。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

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

CEIL和CELING函数:向上取整

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

【实例】使用 CEILING 函数返回最小整数,输入的 SQL 语句和执行结果如下所示。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> SELECT CEIL(-2.5),CEILING(2.5);+------------+--------------+

| CEIL(-2.5) | CEILING(2.5) |

+------------+--------------+

| -2 | 3 |

+------------+--------------+

1 row in set (0.00 sec)

View Code

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

FLOOR函数:向下取整

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

【实例】求 小于 5,5.66,-4,-4.66 的最大整数

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

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

RAND函数:生成随机数

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> SELECT RAND(), RAND(), RAND();+------------------+-----------------+------------------+

| RAND() | RAND() | RAND() |

+------------------+-----------------+------------------+

| 0.45464584925645 | 0.1824410643265 | 0.54826780459682 |

+------------------+-----------------+------------------+

1 row in set (0.00 sec)

View Code

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

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

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

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

ROUND函数:四舍五入

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

【实例 1】使用ROUND(x)函数,输入 SQL 语句执行结果如下。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

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

【实例 2】使用ROUND(x,y)函数,输入 SQL 语句执行结果如下。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

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

POW和POWER函数:求次方

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

【实例】使用 POW(x,y) 和 POWER(x,y) 函数对参数 x 进行 y 次方的求值。输入 SQL 语句和执行结果如下。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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)

View Code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值