创建表 temp,定义数据类型为 INT 的字段 num,并插入值 64,对 num 值进行算术运算。
创建 temp 表语法如下:
CREATE TABLE temp(num INT);
向字段 num 插入数据 64,语法如下。
INSERT INTO temp VALUE (64);
对 num 的值进行加法和减法运算:
mysql> 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 |
+——+——–+———+———-+
1 row in set (0.01 sec)
上面计算是对 temp 表中的 num 字段的值进行加法和减法的运算,而且由于+和-的优先级相同,因此先加后减或者先减后加之后的结果是相同的。
示例 2
下面对 temp 表中的 num 进行乘法、除法运算,运行结果如下:
mysql> 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 |
+——+——-+———+———+——-+
1 row in set (0.00 sec)
由上面计算结果可以看出,对 num 进行除法运算时,由于 64 无法被 3 整除,因此 MySQL 对 num/3 求商的结果保存到了小数点后面四位,结果为 21.3333;64 除以 3 的余数为 1,因此取余运算 num%3 的结果为 1。
对于取余运算,还可以使用 MOD(a,b) 函数,MOD(a,b) 相当于 a%b,运行结果如下:
mysql> SELECT MOD (num,3) FROM temp;
+————-+
| MOD (num,3) |
+————-+
|
1 |
+————-+
1 row in set (0.00 sec)
示例 3
数学运算中,除数为 0 的除法是没有意义的。所以在除法运算和取余运算中,如果除数为 0,那么返回结果为 NULL.
在除法运算和取余运算中,除数为 0 的运行结果如下所示: