首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 數值函數完整指南:算術運算與數學函數詳解

     編輯:MySQL 綜合教學

MySQL 數值函數概覽

MySQL 提供豐富的數值函數支援,涵蓋基本算術運算、數學函數、三角函數、對數與指數運算等。掌握這些函數能讓資料處理更高效、精確。

基本算術運算子

加法 (+)

mysql> SELECT 3+5;
-> 8

減法 (-)

mysql> SELECT 3-5;
-> -2
mysql> SELECT -2;
-> -2

注意:對 -263 使用一元負號會溢位,建議避免對可能產生該值的整數使用。

乘法 (*)

mysql> SELECT 3*5;
-> 15
mysql> SELECT 18014398509481984*18014398509481984.0;
-> 324518553658426726783156020576256.0
mysql> SELECT 18014398509481984*18014398509481984;
-> 0  -- 整數溢位,超出 BIGINT 64 位元範圍

除法 (/)

mysql> SELECT 3/5;
-> 0.60
mysql> SELECT 102/(1-1);
-> NULL  -- 除以零回傳 NULL

整數除法 (DIV)

mysql> SELECT 5 DIV 2;
-> 2  -- 類似 FLOOR(),但使用 BIGINT 演算法更可靠

核心數學函數

函數說明範例
ABS(X)絕對值ABS(-32) → 32
CEILING(X) / CEIL(X)不小於 X 的最小整數CEILING(1.23) → 2
FLOOR(X)不大於 X 的最大整數FLOOR(-1.23) → -2
ROUND(X, D)四捨五入,保留 D 位小數ROUND(1.298, 1) → 1.3
TRUNCATE(X, D)捨去至 D 位小數(不四捨五入)TRUNCATE(1.999, 1) → 1.9
MOD(N, M) / N % M取模運算MOD(234, 10) → 4
POW(X, Y) / POWER(X, Y)X 的 Y 次方POW(2, -2) → 0.25
SQRT(X)平方根SQRT(20) → 4.472...
EXP(X)e 的 X 次方EXP(2) → 7.389...
LN(X) / LOG(X)自然對數LN(2) → 0.693...
LOG(B, X)以 B 為底的對數LOG(2, 65536) → 16
LOG2(X)以 2 為底的對數LOG2(65536) → 16
LOG10(X)以 10 為底的對數LOG10(100) → 2
SIGN(X)符號:-1、0、1SIGN(-32) → -1
PI()圓周率PI() → 3.141593
RAND() / RAND(N)隨機浮點數 0~1,N 為種子RAND(20) → 固定序列

三角函數

參數單位為弧度。常用函數:

  • SIN(X)、COS(X)、TAN(X):正弦、餘弦、正切
  • ASIN(X)、ACOS(X)、ATAN(X):反正弦、反餘弦、反正切
  • ATAN2(Y, X):兩參數反正切,可判斷象限
  • COT(X):餘切
  • DEGREES(X):弧度轉角度
  • RADIANS(X):角度轉弧度

其他實用函數

  • CRC32(expr):循環冗餘檢查值,回傳 32 位元無符號整數
  • FORMAT(X, D):格式化數字為 '#,###,###.##' 字串
  • LEAST(X, Y, ...) / GREATEST(X, Y, ...):最小/最大值

精度與型別注意事項

  • 整數運算若超出 BIGINT 範圍會溢位,建議混用浮點數運算
  • ROUND() 對精確值使用「四捨五入遠離零」,對近似值依 C 函式庫(通常為「銀行家捨入」)
  • 所有數學函數發生錯誤時回傳 NULL
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved