服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - MySQL笔记之数学函数详解

MySQL笔记之数学函数详解

2019-12-23 16:56MYSQL教程网 Mysql

本篇文章对MySQL的数学函数进行了详细的介绍。需要的朋友参考下

绝对值函数ABS(x)和圆周率函数PI()

复制代码代码如下:

mysql> SELECT ABS(0.5), ABS(-0.5), PI();
+----------+-----------+----------+
| ABS(0.5) | ABS(-0.5) | PI()     |
+----------+-----------+----------+
|      0.5 |       0.5 | 3.141593 |
+----------+-----------+----------+
 row in set (0.00 sec)

 

平方根函数SQRT(x)和求余函数MOD(x,y)

复制代码代码如下:

mysql> SELECT SQRT(16), SQRT(3), MOD(13,4);
+----------+--------------------+-----------+
| SQRT(16) | SQRT(3)            | MOD(13,4) |
+----------+--------------------+-----------+
|        4 | 1.7320508075688772 |         1 |
+----------+--------------------+-----------+
 row in set (0.00 sec)

 

取整函数CEIL(x)、CEILING(x)和FLOOR(x)

复制代码代码如下:


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

 

mysql> SELECT FLOOR(2.3), FLOOR(-2.3);
+------------+-------------+
| FLOOR(2.3) | FLOOR(-2.3) |
+------------+-------------+
|          2 |          -3 |
+------------+-------------+
 row in set (0.00 sec)


CEIL(x)和CEILING(x)返回大于或等于x的最小整数

 

FLOOR(x)返回小于或等于x的最大整数

随机数函数RAND()和RAND(x)

复制代码代码如下:

mysql> SELECT RAND(), RAND(2), RAND(2);
+--------------------+--------------------+--------------------+
| RAND()             | RAND(2)            | RAND(2)            |
+--------------------+--------------------+--------------------+
| 0.8269294489425881 | 0.6555866465490187 | 0.6555866465490187 |
+--------------------+--------------------+--------------------+
 row in set (0.00 sec)


RAND()和RAND(x)这两个函数丢失返回0~1的随机数

 

区别在于,RAND()返回的数是完全随机的,而RAND(x)在x相同时返回的值相同

四舍五入函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)

复制代码代码如下:

mysql> SELECT ROUND(2.3), ROUND(2.5), ROUND(2.53,1), ROUND(2.55,1);
+------------+------------+---------------+---------------+
| ROUND(2.3) | ROUND(2.5) | ROUND(2.53,1) | ROUND(2.55,1) |
+------------+------------+---------------+---------------+
|          2 |          3 |           2.5 |           2.6 |
+------------+------------+---------------+---------------+
 row in set (0.00 sec)


ROUND(x)返回离x最近的整数,也就是对x进行四舍五入处理

 

ROUND(x,y)返回x保留到小数点后y位的值,在截取时进行四舍五入处理

 

复制代码代码如下:

mysql> SELECT TRUNCATE(2.53,1), TRUNCATE(2.55,1);
+------------------+------------------+
| TRUNCATE(2.53,1) | TRUNCATE(2.55,1) |
+------------------+------------------+
|              2.5 |              2.5 |
+------------------+------------------+
 row in set (0.00 sec)


TRUNCATE(x,y)返回x保留到小数点后y位的值,不进行四舍五入操作

 

符号函数SIGN(x)

复制代码代码如下:

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


SIGN(x)返回x的符号,-1为负数,0不变,1为整数

 


幂运算函数POW(x,y)、POWER(x,y)

复制代码代码如下:

mysql> SELECT POW(3,2), POWER(3,2);
+----------+------------+
| POW(3,2) | POWER(3,2) |
+----------+------------+
|        9 |          9 |
+----------+------------+
 row in set (0.00 sec)
 

延伸 · 阅读

精彩推荐
  • Mysqlmysql命令行还原phpMyAdmin导出的含有中文的SQL文件

    mysql命令行还原phpMyAdmin导出的含有中文的SQL文件

    最近得到了一个数十M的MySQL脚本文件,准备还原为数据库。 ...

    mysql教程网2732019-11-07
  • Mysqlmysql 的load data infile

    mysql 的load data infile

    前些日子在开发一个舆情监测系统,需要在一个操作过程中往数据表里插入大量的数据,为了改变以往生硬地逐条数据插入的笨办法,也为了提高执行效率...

    mysql教程网2982019-10-27
  • MysqlMySQL 双向备份的实现方法

    MySQL 双向备份的实现方法

    这篇文章主要介绍了MySQL 双向备份的实现方法,即两个 MySQL 服务都是 Master,其中任意一个服务又是另一个服务的 Slave,感兴趣的可以了解一下...

    魏晋秋2412019-06-25
  • Mysql使用MySQL的LAST_INSERT_ID来确定各分表的唯一ID值

    使用MySQL的LAST_INSERT_ID来确定各分表的唯一ID值

    MySQL数据表结构中,一般情况下,都会定义一个具有‘AUTO_INCREMENT’扩展属性的‘ID’字段,以确保数据表的每一条记录都可以用这个ID唯一确定 ...

    MYSQL教程网2922019-11-23
  • Mysqlmysql #1062 –Duplicate entry '1' for key 'PRIMARY'

    mysql #1062 –Duplicate entry '1' for key 'PRIMARY'

    Mysql进行数据备份,还原后进行回帖,出现以下错误代码,其实主要是导入数据重复的问题,将现在的数据表清空,重新导入即可 ...

    MYSQL教程网3962019-12-04
  • Mysqlmysql使用source 命令乱码问题解决方法

    mysql使用source 命令乱码问题解决方法

    从windows上导出一个sql执行文件,再倒入到unbutn中,结果出现乱码,折腾7-8分钟,解决方式在导出mysql sql执行文件的时候,指定一下编码格式 ...

    MYSQL教程网3132019-12-23
  • Mysqlmysql 存储过程的问题

    mysql 存储过程的问题

    最近我接触了一本php 与 mysql,老外写的一本书,书中有个tshirtshop网店代码,其中操作数据库的大多用的是mysql存储过程 ...

    mysql教程网3842019-10-27
  • Mysqlphpmyadmin出现#2003服务器无响应解决方法小结

    phpmyadmin出现#2003服务器无响应解决方法小结

    出现登陆phpmyadmin出现 #2003 - 服务器没有响应最先想到的是你的mysql服务器是不是停止了检查一下,如果是mysql服务器停止服务了重启就可以解决问题了 ...

    MYSQL教程网3752019-12-02