如何在mysql中进行数值计算_sql算术运算

来源:这里教程网 时间:2026-02-28 20:42:51 作者:

MySQL 中可以直接在 SQL 查询里进行数值计算,使用标准的算术运算符即可完成加减乘除、取模、负号等操作,无需额外函数(除非涉及复杂数学逻辑)。

基础算术运算符

MySQL 支持以下常用算术运算符,优先级与数学规则一致(先乘除模,后加减,括号可改变顺序):

+:加法,如
price + tax
-:减法或负号,如
salary - deduction
-amount
*:乘法,如
quantity * unit_price
/:除法,结果为浮点数(即使操作数是整数),如
10 / 3
3.3333
div:整除(只保留商的整数部分),如
10 div 3
3
%mod:取模(求余数),如
10 % 3
10 mod 3
1

在 SELECT 中动态计算字段

可在

SELECT
列表中直接写表达式,为结果生成计算列(别名推荐用
AS
明确命名):

示例:

SELECT id, price, quantity, price * quantity AS total_cost FROM orders;

该语句返回每笔订单的总价,
total_cost
是计算出的新列。

支持多层运算和函数嵌套,例如:

SELECT ROUND(salary * 1.1, 2) AS new_salary FROM employees;

先乘以 1.1 涨薪,再四舍五入保留两位小数。

注意事项与常见问题

数值计算时需留意数据类型隐式转换和空值影响:

任意操作数为
NULL
,整个表达式结果为
NULL
(如
5 + NULL
NULL
),必要时用
IFNULL()
COALESCE()
处理
整数除法
/
仍返回浮点结果;若需整数商,用
div
更安全
模运算中,负数取模遵循 MySQL 规则:符号与被除数相同,如
-7 % 3
=
-1
7 % -3
=
1
大数计算注意溢出风险,尤其是
BIGINT
范围(±9.2×10¹⁸),超出会报错或截断

在 WHERE 和 ORDER BY 中使用计算

算术表达式也可用于过滤或排序:

WHERE 示例:

SELECT * FROM products WHERE price * discount_rate > 100;

筛选折扣后价格超 100 的商品。

ORDER BY 示例:

SELECT name, score1, score2 FROM students ORDER BY (score1 + score2) DESC;

按总分降序排列学生记录。

相关推荐