暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的函数和运算符 - 数值函数和运算符 - 算术运算符

数据库杂货铺 2021-06-08
1958

算术运算符

 

名称

介绍

%,MOD

取模运算符

*

乘法运算符

+

加法运算符

-

减法运算符

-

改变参数的符号

/

除法运算符

DIV

整数除法

 

常用的算术运算符结果按以下规则确定:

 

● 在运算 -+、和 * 的情况下,如果两个操作数都是整数,则使用 BIGINT64位)精度计算结果。

 

● 如果两个操作数都是整数,而其中任何一个都是无符号的,则结果是无符号整数。对于减法,如果启用了 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)

 

由于这些规则及其应用方式,应注意确保计算的组件和子组件使用适当的精度级别。

 

算术运算符适用于数字。对于其他类型的值,可以使用替代操作。例如,要增加日期值,请使用 DATE_ADD()

 

● +

 

加法:

 

    mysql> SELECT 3+5;
    -> 8

     

    ● -

     

    减法:

     

      mysql> SELECT 3-5;
      -> -2

       

      ● -

       

      一元减法。此运算符更改操作数的符号。

       

        mysql> SELECT - 2;
        -> -2

         

        注意

         

        如果此运算符用于 BIGINT,则返回值也是 BIGINT。这意味着应该避免在值为 −263 的整数上使用 -

         

        ● *

         

        乘法:

         

          mysql> SELECT 3*5;
          -> 15
          mysql> SELECT 18014398509481984*18014398509481984.0;
          -> 324518553658426726783156020576256.0
          mysql> SELECT 18014398509481984*18014398509481984;
          -> out-of-range error

           

          最后一个表达式产生错误,因为整数乘法的结果超出了 BIGINT 计算的 64 位范围。

           

          ● /

           

          除法:

           

            mysql> SELECT 3/5;
            -> 0.60

             

            被零除产生 NULL 结果:

             

              mysql> SELECT 102/(1-1);
              -> NULL

               

              除法只有在其结果转换为整数的上下文中执行时,才使用 BIGINT 算术进行计算。

               

              ● DIV

               

              整数除法。从除法结果中丢弃小数点右侧的小数部分。

               

              如果任一操作数的类型为非整数,则在将结果转换为 BIGINT 之前,操作数将转换为 DECIMAL 并使用 DECIMAL 算术进行除法。如果结果超出 BIGINT 范围,则会发生错误。

               

                mysql> SELECT 5 DIV 2, -5 DIV 2, 5 DIV -2, -5 DIV -2;
                -> 2, -2, -2, 2

                 

                ● N % M, N MOD M

                 

                模运算。返回 N 除以 M 的余数。

                 

                 

                官方文档:

                https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html


                文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论