算术运算符
| 运算符 | 作用 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / DIV |
除法,返回商 |
| % MOD |
出发,返回余数 |
- 除法运算和模运算中,如果除数为 0,将是非法除数,返回结果为 NULL
- 对于模运算,还有另外一种表达方式,使用
MOD(a,b)函数与a%b效果一样
比较运算符
当使用 SELECT 语句进行查询时,MySQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL
| 运算符 | 作用 |
|---|---|
| = | 等于 |
| <> != |
不等于 |
| <=> | NULL 安全的等于(NULL-safe) |
| < | 小于 |
| <= | 小于等于 |
| > | 大于 |
| >= | 大于等于 |
| BETWEEN | 存在于指定范围 |
| IN | 存在于指定集合 |
| IS NULL | 为 NULL |
| IS NOT NULL | 不为 NULL |
| LIKE | 通配符匹配 |
| PEGEXP PLIKE |
正则表达式匹配 |
<=>运算符和=类似,不同之处在于NULL <=> NULL为 1between运算符的使用格式为a BETWEEN min AND max,当 a 大于等于 min 并且小于等于 max,则返回值为 1,否则返回 0;当操作数 a、min、max 类型相同时,此表达式等价于a>=min and a<=max,当操作数类型不同时,比较时会遵循类型转换原则进行转换后,再进行比较运算IN运算符的使用格式为a IN (value1,value2,…),当 a 的值存在于列表中时,则整个比较表达式返回的值为 1,否则返回 0IS NULL运算符的使用格式为a IS NULL,当 a 的值为 NULL,则返回值为 1,否则返回 0IS NOT NULL运算符的使用格式为a IS NOT NULL。和IS NULL相反,当 a 的值不为 NULL,则返回值为 1,否则返回 0-
LIKE运算符的使用格式为a LIKE '%123%',当 a 中含有字符串 “123” 时,则返回值为 1,否则返回 0a LIKE '%123',当 a 中的字符串是以 “123” 结尾时返回 1,否则返回 0a LIKE '123%',当 a 中的字符串是以 “123” 开头时返回 1,否则返回 0 REGEXP运算符的使用格式为str REGEXP str_pat,当 str 字符串中含有 str_pat
相匹配的字符串时,则返回值为 1,否则返回 0
逻辑运算符
逻辑运算符又称为布尔运算符,用来确认表达式的真和假
| 运算符 | 作用 |
|---|---|
| NOT 或 ! | 逻辑非 |
| AND 或 && | 逻辑与 |
| OR 或 || | 逻辑或 |
| XOR | 逻辑异或 |
- 与,或,非,异或,与 NULL 进行运算时都返回 NULL
位运算符
位运算是将给定的操作数转化为二进制后,对各个操作数每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果
| 运算符 | 作用 |
|---|---|
| & | 位与(位 AND) |
| | | 位或(位 OR) |
| ^ | 位异或(位 XOR) |
| ~ | 位取反 |
| >> | 位右移 |
| << | 位左移 |
运算符的优先级
| 优先级顺序 | 运算符 |
|---|---|
| 1 | = |
| 2 | ||,OR,XOR |
| 3 | &&,AND |
| 4 | NOT |
| 5 | BETWEEN,CASE,WHEN,THEN 和 ELSE |
| 6 | =,<=>,>=,>,<=,<,<>,!=,IS,LIKE,REGEXP 和 IN |
| 7 | | |
| 8 | & |
| 9 | << 和 >> |
| 10 | - 和 + |
| 11 | *,/,DIV,% 和 MOD |
| 12 | ^ |
| 13 | -(一元减号)和 ~ |
| 14 | ! |
| 15 | () |