本文更新于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 <=> b | NULL安全的等于 |
| < | a < b | 小于 |
| <= | a <= b | 小于等于 |
| > | a > b | 大于 |
| >= | a >= b | 大于等于 |
| BETWEEN | a BETWEEN min AND max | 存在于指定区间[min, max] |
| IN | a IN (value[, ...]) | 存在于指定集合 |
| IS | a IS [NOT] NULL | 是否为NULL |
| LIKE | a LIKE 'pattern' | 通配符匹配 |
| REGEXP或RLIKE | a 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 | 非 |
| &&或AND | a && b | 与 |
| ||或OR | a || b | 或 |
| XOR | a XOR b | 异或 |
- 若结果为真则返回1,为假则返回0,不确定则返回
NULL。 NULL参与||运算,当另一个操作数为1时,返回1,否则返回NULL。NULL参与其他逻辑运算均返回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):运算符
没有评论:
发表评论