Skip to content

MySQL - 数值函数

MySQL 提供了一套丰富的内置函数,用于执行数学运算和操作数值数据。这些函数对于从 SELECT 语句中的简单计算到复杂数据分析都至关重要。

下面是按类别列出的最常用和最有用的数值函数,每个函数都附有语法和实际示例。

将数字 X 四舍五入到 D 位小数。如果省略 D,则四舍五入到最接近的整数。

SELECT ROUND(123.456, 2) AS round_2_decimals, ROUND(123.456) AS round_to_integer;
-- 结果:123.46, 123

返回不小于 X 的最小整数值(向上取整)。

SELECT CEIL(45.1) AS ceil_up, CEIL(-45.9) AS ceil_negative;
-- 结果:46, -45

返回不大于 X 的最大整数值(向下取整)。

SELECT FLOOR(45.9) AS floor_down, FLOOR(-45.1) AS floor_negative;
-- 结果:45, -46

将数字 X 截断到 D 位小数,不进行四舍五入。

SELECT TRUNCATE(123.456, 2) AS truncated, TRUNCATE(123.999, 0) AS truncated_zero;
-- 结果:123.45, 123

返回 X 的绝对值(非负值)。

SELECT ABS(-25.5) AS absolute_val;
-- 结果:25.5

返回 N 除以 M 的余数(模运算)。

SELECT MOD(10, 3) AS modulo_val;
-- 结果:1

返回 X 的 Y 次幂的值。

SELECT POW(2, 8) AS power_of_2;
-- 结果:256

返回 X 的非负平方根。

SELECT SQRT(64) AS square_root;
-- 结果:8

返回一个介于 0(包含)和 1(不包含)之间的随机浮点值。要获取指定范围内的随机整数,请使用 FLOOR(RAND() * (max - min + 1)) + min。

SELECT RAND() AS random_float, FLOOR(RAND() * 100) + 1 AS random_int_1_to_100;
-- 结果:(一个随机浮点数,如 0.12345),(一个随机整数,如 42)

返回 X 的符号,为 -1(负数)、0(零)或 1(正数)。

SELECT SIGN(-50) AS sign_neg, SIGN(100) AS sign_pos;
-- 结果:-1, 1

MySQL 也支持标准的三角函数,它们对弧度值进行操作。

  • SIN(X):返回 X 的正弦值。
  • COS(X):返回 X 的余弦值。
  • TAN(X):返回 X 的正切值。
  • ACOS(X)、ASIN(X)、ATAN(X):反余弦、反正弦和反正切函数。
  • DEGREES(X):将弧度转换为度。
  • RADIANS(X):将度转换为弧度。
  • PI():返回圆周率 (π) 的值。
SELECT SIN(PI() / 2) AS sin_90_deg, DEGREES(PI()) AS pi_in_degrees;
-- 结果:1, 180