您的位置:首页 > 数据库 > MySQL

mysql 内置函数-数学函数

2018-02-13 14:34 411 查看

6.7 mysql 内置函数-数学函数

表准备

mysql> select * from student;
+------+------+--------+-------+
| id   | name | sex    | score |
+------+------+--------+-------+
|    1 | aa   | female |  NULL |
|    2 | bb   | male   |  NULL |
|    3 | cc   | male   |   3.1 |
|    4 | dd   | male   |   3.5 |
|    5 | ee   | male   |   3.6 |
|    6 | ff   | male   |   3.9 |
+------+------+--------+-------+
6 rows in set (0.00 sec)


6.7.1 十进制转二进制 – bin

bin(number2)


实验一:

mysql> select bin(10);
+---------+
| bin(10) |
+---------+
| 1010    |
+---------+
1 row in set (0.00 sec)

mysql> select bin(3);
+--------+
| bin(3) |
+--------+
| 11     |
+--------+
1 row in set (0.00 sec)


6.7.2 向上取整 – ceiling

ceiling(number2)


实验一:

mysql> select ceiling(3.1);
+--------------+
| ceiling(3.1) |
+--------------+
|            4 |
+--------------+
1 row in set (0.00 sec)

mysql> select ceiling(3.5);
+--------------+
| ceiling(3.5) |
+--------------+
|            4 |
+--------------+
1 row in set (0.00 sec)

mysql> select ceiling(3.6);
+--------------+
| ceiling(3.6) |
+--------------+
|            4 |
+--------------+
1 row in set (0.00 sec)


实验二:

mysql> select name,ceiling(score) from student;
+------+----------------+
| name | ceiling(score) |
+------+----------------+
| aa   |           NULL |
| bb   |           NULL |
| cc   |              4 |
| dd   |              4 |
| ee   |              4 |
| ff   |              4 |
+------+----------------+
6 rows in set (0.00 sec)


6.7.3 向下取整 – floor

floor(number2)


实验一:

mysql> select floor(3.1);
+------------+
| floor(3.1) |
+------------+
|          3 |
+------------+
1 row in set (0.00 sec)

mysql> select floor(3.5);
+------------+
| floor(3.5) |
+------------+
|          3 |
+------------+
1 row in set (0.00 sec)

mysql> select floor(3.9);
+------------+
| floor(3.9) |
+------------+
|          3 |
+------------+
1 row in set (0.00 sec)


实验二:

mysql> select name,floor(score) from student;
+------+--------------+
| name | floor(score) |
+------+--------------+
| aa   |         NULL |
| bb   |         NULL |
| cc   |            3 |
| dd   |            3 |
| ee   |            3 |
| ff   |            3 |
+------+--------------+
6 rows in set (0.00 sec)


6.7.4 取最大值 – max

max(num1,num2)


实验一:

mysql> select score from student;
+-------+
| score |
+-------+
|  NULL |
|  NULL |
|   3.1 |
|   3.5 |
|   3.6 |
|   3.9 |
+-------+
6 rows in set (0.00 sec)

mysql> select max(score) from student;

aa9c
+------------------+
| max(score)       |
+------------------+
| 3.90000009536743 |
+------------------+
1 row in set (0.00 sec)

mysql> select max(id) from student;
+---------+
| max(id) |
+---------+
|       6 |
+---------+
1 row in set (0.00 sec)

结论:注意浮点型在取最大值时的取值。


6.7.5 取最小值 – min

min(num1,num2)


实验一:

mysql> select score from student;
+-------+
| score |
+-------+
|  NULL |
|  NULL |
|   3.1 |
|   3.5 |
|   3.6 |
|   3.9 |
+-------+
6 rows in set (0.00 sec)

mysql> select min(score) from student;
+------------------+
| min(score)       |
+------------------+
| 3.09999990463257 |
+------------------+
1 row in set (0.00 sec)

mysql> select min(id) from student;
+---------+
| min(id) |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

结论:注意浮点型在取最小值时的取值。


6.7.6 开平方 – sqrt

sqrt(num1)


实验一:

mysql> select sqrt(4);
+---------+
| sqrt(4) |
+---------+
|       2 |
+---------+
1 row in set (0.00 sec)


6.7.6 返回0-1内的随机数 – rand

rand();


实验一:

mysql> select rand();
+-------------------+
| rand()            |
+-------------------+
| 0.608572646610972 |
+-------------------+
1 row in set (0.00 sec)

mysql> select rand();
+-------------------+
| rand()            |
+-------------------+
| 0.154164170058597 |
+-------------------+
1 row in set (0.00 sec)

mysql> select rand();
+-------------------+
| rand()            |
+-------------------+
| 0.945102941193714 |
+-------------------+
1 row in set (0.00 sec)

mysql> select rand();
+-------------------+
| rand()            |
+-------------------+
| 0.263022226526423 |
+-------------------+
1 row in set (0.00 sec)


6.7.7 四舍五入 – round

返回参数X的四舍五入的一个整数。


实验一:

mysql> select round(1.1)
-> ;
+------------+
| round(1.1) |
+------------+
|          1 |
+------------+
1 row in set (0.00 sec)

mysql> select round(1.3);
+------------+
| round(1.3) |
+------------+
|          1 |
+------------+
1 row in set (0.00 sec)

mysql> select round(1.5);
+------------+
| round(1.5) |
+------------+
|          2 |
+------------+
1 row in set (0.00 sec)

mysql> select round(1.6);
+------------+
| round(1.6) |
+------------+
|          2 |
+------------+
1 row in set (0.00 sec)

mysql> select round(1.9);
+------------+
| round(1.9) |
+------------+
|          2 |
+------------+
1 row in set (0.00 sec)


6.7.8 小数四舍五入 –ROUND(X,D)

返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。


实验一:

mysql> select round(1.99999,3);
+------------------+
| round(1.99999,3) |
+------------------+
|            2.000 |
+------------------+
1 row in set (0.00 sec)

mysql> select round(1.89999,3);
+------------------+
| round(1.89999,3) |
+------------------+
|            1.900 |
+------------------+
1 row in set (0.00 sec)

mysql> select round(1.89990,3);
+------------------+
| round(1.89990,3) |
+------------------+
|            1.900 |
+------------------+
1 row in set (0.00 sec)

mysql> select round(1.89390,3);
+------------------+
| round(1.89390,3) |
+------------------+
|            1.894 |
+------------------+
1 row in set (0.00 sec)

mysql> select round(1.89930,3);
+------------------+
| round(1.89930,3) |
+------------------+
|            1.899 |
+------------------+
1 row in set (0.00 sec)

结论:该方法对小数点后的第count位后的数进行四舍五入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: