MySQL 的运算符及运算符的优先级

一直在练注入,碰到了一些运算符,原来一直没学过,这次系统的整理下。


Mysql运算符分类

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

算术运算符

  • MySQL 支持的算术运算符包括:
    MySQL 的运算符及运算符的优先级_第1张图片
    注意:在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。
  • 加法
    MySQL 的运算符及运算符的优先级_第2张图片
  • 减法
    MySQL 的运算符及运算符的优先级_第3张图片
  • 乘法
    MySQL 的运算符及运算符的优先级_第4张图片
  • 除法
    MySQL 的运算符及运算符的优先级_第5张图片
    这里的/和div还是有一不样的,div是在除法后取整。
  • 取模/取余
    MySQL 的运算符及运算符的优先级_第6张图片
    这里并没有什么太大差距,也没有一些资料上说的%不可以用于负数,都是成立的。

    比较运算符

  • 通常select可以通过比较运算符来筛选数据,成立为1,不成立为0。
    MySQL 的运算符及运算符的优先级_第7张图片
  • 相等/不相等比较
    MySQL 的运算符及运算符的优先级_第8张图片
  • 大小比较
    MySQL 的运算符及运算符的优先级_第9张图片
    例1中1大于2为0,0又大于等0,所以成立,结果为1。
    例2中1小于2为1,1不小于等于0,所以不成立,结果为0。
  • 在/不在两值之间比较
    MySQL 的运算符及运算符的优先级_第10张图片
  • 在/不在集合之中比较
    MySQL 的运算符及运算符的优先级_第11张图片
  • 模型匹配
    MySQL 的运算符及运算符的优先级_第12张图片
    当然可以也可以使用其它的通配符。
    % : 匹配0个或任意多个字符
    _ : 匹配任意一个字符
    escape : 转义字符,可匹配%和_。
    MySQL 的运算符及运算符的优先级_第13张图片
    MySQL 的运算符及运算符的优先级_第14张图片
  • 正则式匹配比较
    MySQL 的运算符及运算符的优先级_第15张图片
    可以使用rlike或者使用regexp,常用通配符:. 、* 、 [] 、 ^ 、 $ 、{n}
    . : 匹配任意单个字符 
    * : 匹配0个或多个前一个得到的字符 
    * [] : 匹配任意一个[]内的字符,[ab]*可匹配空串、a、b、或者由任意个a和b组成的字符串。 
    * ^ : 匹配开头,如^s匹配以s或者S开头的字符串。 
    * $ : 匹配结尾,如s$匹配以s结尾的字符串。 
    * {n} : 匹配前一个字符反复n次。

    逻辑运算符

  • 逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回 1。如果表达式是假,结果返回 0。
    MySQL 的运算符及运算符的优先级_第16张图片
  • 逻辑非
    MySQL 的运算符及运算符的优先级_第17张图片
  • 逻辑与
    只有当两个条件均为真时,结果才为真,&&效果等同。 MySQL 的运算符及运算符的优先级_第18张图片
  • 逻辑或
    只要有一个条件为真时,结果就为真,||效果等同。 MySQL 的运算符及运算符的优先级_第19张图片
  • 逻辑异或
    同真同假都为假,有一个为真就为真,有一个Null就为Null。MySQL 的运算符及运算符的优先级_第20张图片

    位运算符

  • 位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。
    MySQL 的运算符及运算符的优先级_第21张图片
  • 按位与
    对应的二进制位都为 1 ,则该位的运算结果为 1 ,否则为 0MySQL 的运算符及运算符的优先级_第22张图片
  • 按位或
    对应的二进制位若有1 ,则该位的运算结果为 1 ,否则为 0MySQL 的运算符及运算符的优先级_第23张图片
  • 按位异或
    对应的二进制位不相同时,结果为 1 ,否则为 0MySQL 的运算符及运算符的优先级_第24张图片
  • 按位左移
    使指定的二进制位都左移指定的位数,左移指定位之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐MySQL 的运算符及运算符的优先级_第25张图片
  • 按位右移
    使指定的二进制位都右移指定的位数,右移指定位之后,右边低位的数值将被移出并丢弃,左边高位空出的职位用 0 补齐MySQL 的运算符及运算符的优先级_第26张图片
  • 按位取反
    对应的二进制位01互换MySQL 的运算符及运算符的优先级_第27张图片

    运算符优先级

  • 最低优先级为: :=。
  • 最高优先级为: !、BINARY、 COLLATE。
    MySQL 的运算符及运算符的优先级_第28张图片
  • 你可能感兴趣的:(#,MySQL)