2020年6月24日星期三

MySQL学习笔记(5):运算符

本文更新于2020-06-14,使用MySQL 5.7,操作系统为Deepin 15.4。

目录

  • 算数运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 运算符优先级

算数运算符

运算符语法说明
+a + b加法
-a - b减法
*a * b乘法
/a / b除法。类似DIV,但DIV会对结果取整,/的结果可为小数
%a % b取余。类似MOD
  • 除法和取模,若除数为0,则返回NULL
  • NULL参与的算数运算都返回NULL

比较运算符

运算符语法说明
=a = b等于
!=或<>a != b不等于
<=>a <=> bNULL安全的等于
<a < b小于
<=a <= b小于等于
>a > b大于
>=a >= b大于等于
BETWEENa BETWEEN min AND max存在于指定区间[min, max]
INa IN (value[, ...])存在于指定集合
ISa IS [NOT] NULL是否为NULL
LIKEa LIKE 'pattern'通配符匹配
REGEXP或RLIKEa REGEXP 'regexp'正则表达式匹配
  • 若比较结果为真则返回1,为假则返回0,不确定则返回NULL
  • 两个字符串字面量直接用=比较时,不区分大小写。
  • NULL <=> NULL返回1,其他值与NULL比较都返回NULL
  • LIKE的模式可使用%表示0个或多个任意字符。

正则表达式的模式如下:

模式作用
^匹配字符串开始
$匹配字符串结尾
.匹配任意单个字符,包括换行符
[...]匹配括号中的任意字符
[^...]匹配不在括号中的任意字符
a*匹配0个或多个a
a+匹配1个或多个a
a?匹配0个或1个a
a|b匹配a或b
a(n)匹配n个a
a(n,)匹配n个或更多个a
a(n, m)匹配n到m个a
a(, n)匹配0到n个a
(...)将模式元素组成单一元素

逻辑运算符

运算符语法说明
!或NOT!a
&&或ANDa && b
||或ORa || b
XORa XOR b异或
  • 若结果为真则返回1,为假则返回0,不确定则返回NULL
  • NULL参与||运算,当另一个操作数为1时,返回1,否则返回NULLNULL参与其他逻辑运算均返回NULL,包括NOT NULL

位运算符

运算符语法说明
~~a按位反
&a & b按位与
|a | b按位或
^a ^ b按位异或
>>a >> b位右移
<<a << b位左移
  • 位运算得出的结果为十进制形式的整数。
  • 常量数字默认是8字节。
  • <<右侧补0,>>左侧补0,都会连带符号位一起移动。负数移位后的结果为无符号整数。

运算符优先级

按优先级从高到低依次为:

运算符类型运算符
单目运算符!
单目运算符-、~
单目运算符^
算数运算符*、/(DIV)、%(MOD)
算数运算符+、-
位运算符<<、>>
位运算符&
位运算符|
比较运算符=、!=(<>)、<=>、<、<=、>、>=、BETWEEN、IN、IS、LIKE、REGEXP(RLIKE)
BETWEEN、CASE、WHEN、THEN、ELSE
逻辑运算符!(NOT)
逻辑运算符&&(AND)
逻辑运算符||(OR)、XOR
赋值运算符:=
MySQL学习笔记(5):运算符

没有评论:

发表评论