精簡整理 MySQL 核心數學函數,含語法、參數、返回值與典型輸出,適合開發時快速查閱。
| 分類 | 函數 | 說明 | 典型範例 |
|---|---|---|---|
| 基本運算 | ABS(x) | 絕對值 | ABS(-5) → 5 |
| PI() | 圓周率常數 | PI() → 3.141593 | |
| 根號/乘方 | SQRT(x) | 平方根(x<0 返回 NULL) | SQRT(64) → 8 |
| POW(x,y) / POWER(x,y) | x 的 y 次方 | POW(2,3) → 8 | |
| 指數/對數 | EXP(x) | e 的 x 次方 | EXP(1) → 2.71828 |
| LOG(x) | 自然對數 ln(x) | LOG(10) → 2.30259 | |
| LOG10(x) | 以 10 為底對數 | LOG10(100) → 2 | |
| 取整 | CEIL(x) / CEILING(x) | ≥x 的最小整數(向上) | CEIL(3.2) → 4 |
| FLOOR(x) | ≤x 的最大整數(向下) | FLOOR(3.8) → 3 | |
| TRUNCATE(x,d) | 截斷到 d 位小數(不四捨五入) | TRUNCATE(3.1415,2) → 3.14 | |
| 四捨五入 | ROUND(x,d) | 四捨五入到 d 位(d 可負) | ROUND(3.1415,2) → 3.14 |
| ROUND(x) | 四捨五入到整數 | ROUND(3.6) → 4 | |
| 餘數 | MOD(x,y) / x % y | 餘數,支援小數 | MOD(10,3) → 1 |
| 符號 | SIGN(x) | 負/零/正 → -1/0/1 | SIGN(-5) → -1 |
| 隨機數 | RAND() | 0~1 隨機浮點數 | RAND() → 0.7321 |
| RAND(seed) | 固定種子可重複序列 | RAND(42) → 固定值 | |
| 角度轉換 | RADIANS(deg) | 角度轉弧度 | RADIANS(180) → 3.14159 |
| DEGREES(rad) | 弧度轉角度 | DEGREES(PI()) → 180 | |
| 三角函數 | SIN(x) | 正弦(x 為弧度) | SIN(PI()/2) → 1 |
| COS(x) | 餘弦 | COS(PI()) → -1 | |
| TAN(x) | 正切 | TAN(PI()/4) → 1 | |
| ASIN(x) | 反正弦(定義域 [-1,1]) | ASIN(1) → 1.5708 | |
| ACOS(x) | 反餘弦 | ACOS(-1) → 3.14159 | |
| ATAN(x) | 反正切 | ATAN(1) → 0.7854 | |
| COT(x) | 餘切 = 1/TAN(x) | COT(0.5) → 1.8305 |
-- 隨機整數 1~100
SELECT FLOOR(1 + RAND() * 100);
-- 保留 2 位小數(金額四捨五入)
SELECT ROUND(price, 2);
-- 保留 2 位小數(直接截斷,不進位)
SELECT TRUNCATE(price, 2);
-- 判斷數值正負零
SELECT CASE SIGN(balance) WHEN 1 THEN '正數' WHEN -1 THEN '負數' ELSE '零' END;
-- 計算複利:本金 * (1+年利率)^年數
SELECT principal * POW(1 + rate, years) AS amount;
-- 角度計算正弦
SELECT SIN(RADIANS(30)); -- 0.5
COUNT(*):行數SUM(col):求和AVG(col):平均值MAX(col):最大值MIN(col):最小值本表涵蓋日常開發 95% 以上數學運算場景,建議收藏備查。