# 12.6.1 算术运算符
表 12.9 算术运算符
姓名 | 描述 |
---|---|
% ,模组 | 模运算符 |
* | 乘法运算符 |
+ | 加法运算符 |
- | 减号运算符 |
- | 更改参数的符号 |
/ | 分区运算符 |
分区 | 整数除法 |
可以使用常用的算术运算符。结果根据以下规则确定:
如果两个操作数都是整数并且其中任何一个都是无符号的,则结果是一个无符号整数。对于减法,如果
NO_UNSIGNED_SUBTRACTION
启用 SQL 模式,即使任何操作数未签名,结果也已签名。在进行的除法中
/
,当使用两个精确值操作数时,结果的比例是第一个操作数的比例加上第一个操作数的值div_precision_increment
系统变量(默认为 4)。例如,表达式的结果5.05 / 0.014
小数点后六位 (360.714286
)。这些规则适用于每个操作,因此嵌套计算意味着每个组件的精度。因此,
(14620 / 9432456) / (24250 / 9432456)
, 首先解决(0.0014) / (0.0026)
, 最终结果有 8 位小数 (0.60288653
)。由于这些规则及其应用方式,应注意确保计算的组件和子组件使用适当的精度级别。看第 12.11 节,“转换函数和运算符”.
有关在数值表达式求值中处理溢出的信息,请参阅第 11.1.7 节,“超出范围和溢出处理”.
算术运算符适用于数字。对于其他类型的值,可以使用替代操作。例如,要添加日期值,请使用
DATE_ADD()
;看第 12.7 节,“日期和时间函数”.
-
添加:
mysql> SELECT 3+5; -> 8
-
减法:
mysql> SELECT 3-5; -> -2
-
一元减号。此运算符更改操作数的符号。
mysql> SELECT - 2; -> -2
笔记
-
乘法:
mysql> SELECT 3*5; -> 15 mysql> SELECT 18014398509481984*18014398509481984.0; -> 324518553658426726783156020576256.0 mysql> SELECT 18014398509481984*18014398509481984; -> out-of-range error
最后一个表达式产生错误,因为整数乘法的结果超出了 64 位范围
大整数
计算。(看第 11.1 节,“数值数据类型”.) -
分配:
mysql> SELECT 3/5; -> 0.60
除以零产生一个
空值
结果:mysql> SELECT 102/(1-1); -> NULL
除法计算如下
大整数
仅当在结果转换为整数的上下文中执行算术运算。 -
整数除法。从除法结果中丢弃小数点右侧的任何小数部分。
如果任一操作数具有非整数类型,则操作数将转换为
十进制
并使用十进制
将结果转换为之前的算术大整数
.如果结果超过大整数
范围内,发生错误。mysql> SELECT 5 DIV 2, -5 DIV 2, 5 DIV -2, -5 DIV -2; -> 2, -2, -2, 2
-
模运算。返回剩余的*
ñ
除以米
*.有关详细信息,请参阅模组()
作用于第 12.6.2 节,“数学函数”.