算术运算符是 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;

执行结果:

numnum+10num-3+5num+36.5
647466100.5

说明:

 加减法运算符优先级相同,从左到右计算

 MySQL 会自动处理整数和浮点数的混合运算

 

示例3:乘除法及取模运算

SELECT num, num*2, num/2, num/3, num%3 FROM temp;

执行结果:

numnum*2num/2num/3num%3
6412832.000021.33331


说明:

 除法运算默认保留4位小数

 取模运算可以使用 `%` 或 `MOD()` 函数

 

示例4:使用 MOD() 函数

SELECT MOD(num,3) FROM temp;

执行结果:

MOD(num, 3)
1

示例5:除数为0的情况

SELECT num, num/0, num%0 FROM temp;

执行结果:

numnum/0num%0
64NULLNULL

 

重要说明:

 在 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

点赞(1)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)