首页 > 编程笔记

MySQL算术运算符(+、-、*、/和%)

算术运算符是MySQL中最基本的运算符,MySQL 中的算术运算符如下表所示。

表 1 MySQL中的算术运算符
运算符 作用
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算,返回商
% 求余运算,返回余数

下面分别讨论不同算术运算符的使用方法。

【实例】创建表 tmp14,定义数据类型为 INT 的字段 num,插入值 64,对 num 值进行算术运算。
① 创建表 tmp14:
CREATE TABLE tmp14(num INT);
② 向字段 num 插入数据 64:
INSERT INTO tmp14 value(64);
③ 对 num 值进行加法和减法运算:
mysql> SELECT num, num+10, num-3+5, num+5-3, num+36.5 FROM tmp14;
+-------+-----------+----------+-----------+------------+
| num   | num+10    | num-3+5  | num+5-3   | num+36.5   |
+-------+-----------+----------+-----------+------------+
|   64  |     74    |      66  |    66     |    100.5   |
+-------+-----------+----------+-----------+------------+
由计算结果可以看到,对 num 字段的值进行加法和减法的运算时,“+”和“–”的优先级相同,先加后减或者先减后加的结果是相同的。

【实例】对 tmp14 表中的 num 进行乘法、除法运算。
mysql> SELECT num, num *2, num /2, num/3, num%3 FROM tmp14;
+-------+---------+----------+----------+----------+
| num   | num *2  | num /2   | num/3    | num%3    |
+-------+---------+----------+----------+----------+
|   64  |   128   | 32.0000  | 21.3333  |    1     |
+-------+---------+----------+----------+----------+
由计算结果可以看到,对 num 进行除法运算时,64 无法被 3 整除,MySQL 对 num/3 求商的结果保存到了小数点后面四位,结果为 21.3333;64 除以 3 的余数为 1,因此取余运算 num%3 的结果为 1。

在数学运算时,除数为 0 的除法是没有意义的,因此除法运算中的除数不能为 0,如果被 0 除,则返回结果为 NULL。

【实例】用 0 除 num。
mysql> SELECT num, num / 0, num %0 FROM tmp14;
+------+---------+---------+
| num  | num / 0 | num %0  |
+------+---------+---------+
|   64 |  NULL   |  NULL   |
+------+---------+---------+
由计算结果可以看到,对 num 进行除法求商或者求余运算的结果均为 NULL。

推荐阅读