程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL筆記之數學函數詳解

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)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved