算术运算符是 SQL 中最基础且最常用的运算符类型,用于执行各种数学计算。MySQL 提供了完整的算术运算符集合,可以满足各种数值计算需求。
一、MySQL 支持的算术运算符
运算符 | 名称 | 描述 | 示例 | 结果 |
---|---|---|---|---|
+ | 加法 | 计算两个或多个值的和 | SELECT 5+3; | 8 |
- | 减法 | 从一个值中减去另一个值 | SELECT 10-4; | 6 |
* | 乘法 | 计算两个或多个值的乘积 | SELECT 6*7; | 42 |
/ | 除法 | 计算两个值的商 | SELECT 15/3; | 5 |
% 或 MOD | 取模 | 计算两个值相除后的余数 | SELECT 10%3; | 1 |
二、算术运算符使用示例
示例1:创建测试表并插入数据
创建测试表
CREATE TABLE temp(num INT);
插入测试数据
INSERT INTO temp VALUE (64);
示例2:加减法运算
SELECT num, num+10, num-3+5, num+36.5 FROM temp;
执行结果:
num | num+10 | num-3+5 | num+36.5 |
---|---|---|---|
64 | 74 | 66 | 100.5 |
说明:
加减法运算符优先级相同,从左到右计算
MySQL 会自动处理整数和浮点数的混合运算
示例3:乘除法及取模运算
SELECT num, num*2, num/2, num/3, num%3 FROM temp;
执行结果:
num | num*2 | num/2 | num/3 | num%3 |
---|---|---|---|---|
64 | 128 | 32.0000 | 21.3333 | 1 |
说明:
除法运算默认保留4位小数
取模运算可以使用 `%` 或 `MOD()` 函数
示例4:使用 MOD() 函数
SELECT MOD(num,3) FROM temp;
执行结果:
MOD(num, 3) |
---|
1 |
示例5:除数为0的情况
SELECT num, num/0, num%0 FROM temp;
执行结果:
num | num/0 | num%0 |
---|---|---|
64 | NULL | NULL |
重要说明:
在 MySQL 中,任何数除以0都会返回 NULL
这是 SQL 标准规定的行为,而非错误
三、算术运算符的实际应用
1. 计算商品折扣价格:
SELECT product_name, price, price*0.8 AS discount_price FROM products;
2. 计算年龄:
SELECT name, YEAR(CURRENT_DATE) - birth_year AS age FROM students;
3. 分页计算:
每页10条,计算第3页的记录
SELECT * FROM articles LIMIT 20, 10;
等价于
SELECT * FROM articles LIMIT (3-1)*10, 10;
四、注意事项
1. 运算优先级:乘除取模优先于加减,可以使用括号改变优先级
2. 数据类型转换:混合类型运算时,MySQL会自动进行类型转换
3. 精度问题:除法运算注意小数精度,必要时使用 ROUND() 函数
4. NULL处理:任何包含NULL的算术运算结果都是NULL
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程