Mysql教程

12.2算术运算符

算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括加、减、 乘、除、求余。下面是各种算术运算符的符号、作用、表达式的形式,如表12.1所示。

符号 表达式的形式 作用
+ x1+x2+...+xn 加法运算
- x1-x2-...-xn 减法运算
* x1*x2*...*xn 乘法运算
/ x1/x2 除法运算,返回x1除以x2的商
DIV x1DIVx2 除法运算,返回商,同"/"
% x1%x2 求余运算,返回X1除以X2的余数
MOD MOD(X1,X2) 求余运算,返回余数。同"%"

说明:加号( + )、减号(-)和乘号(*)可以同时运算多个操作数。除号(/)和求余运算符(%)也可以同时计算多个操作数,但是这两个符号计算多个操作数不太好。DIV()和MOD()这两个运算符只有两个参数。除法和求余的运算时,如果参数是0时,计算结果将是空值(NULL )。

【示例12-1】下面将tl表中字段a的值进行加法、减法和乘法运算。计算结果显示如下:

mysql>SELECT a,a+5+2,a-5-2,a*5*2 FROM t1;
+-----+---------+---------+---------+
|  a  |  a+5+2  |  a-5-2  |  a*5*2  |
+-----+---------+---------+---------+
|  24 |    31   |   17    |   240   |
+-----+---------+---------+---------+
1 row in set(0.003 sec)

结果显示,a字段的原值为24;加法运算后的值为31;减法运算后的值为17;乘法运算后的值为240。通过这个例子可以看到加号( + )、减号(一).和乘号(*)的使用方法。

【示例12-2】下面将tl表中字段a的值进行除法和求余运算。计算结果显示如下:

mysql>SELECT a,a/3,aDIV/3,a%3 ,MOD(a,3)FROM t1;
+-----+---------+---------+---------+--------+
|  a  |  a/3    |  aDIV2  |  a%3    |MOD(a,3)|
+-----+---------+---------+---------+--------+
|  24 | 8.0000  |    8    |     0   |    0   |
+-----+---------+---------+---------+--------+
1 row in set(0.000 sec)

结果显示,除法运算后的值为8;求余运算后的值为0。因为,字段3的值为24,刚好整除3。所以,求余后的余数为0。 进行除法和求余运算时,若操作数X2为0,不管操作数X1的值是什么,计算的结果将为空值(NULL)。

【示例12-3】下面将除法和求余运输的操作数x2设置为0。计算结果显示如下:

mysql>SELECT 5/0,5DIV/0,a%3 ,MOD(5,0)FROM t1;
+---------+---------+---------+--------+
|  5/0    |  5DIV0  |  5%0    |MOD(5,0)|
+---------+---------+---------+--------+
|  NULL   |  NULL   |   NULL  |  NULL  |
+---------+---------+---------+--------+
1 row in set(0.000 sec)

结果显示,操作数x2为0时,除法和求余运算的结果为空值(NULL)。

注意:除法运算和求余运算中,x2参数一定不能为0。如果x2参数为0时,除法运算和求余运算的结果都是NULL。而且,X2参数也不能是NULL。如果X2参数为 NULL时,运算结果也会是NULL。因此,在使用除法运算和求余运算时,一定要注意x2参数的值是否合法。


关注微信获取最新动态