数据库中的表结构确立后,表中的数据代表的意义就已经确定。而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据。例如,学生表中存在一个birth字段,这个字段表示学生的出生年份。而运用MySQL的算术运算符用当前的年份减学生出生的年份,那么得到的就是这个学生的实际年龄数据。这就是MySQL的运算符,所以熟悉并掌握运算符的应用,对于操作MySQL数据库中的数据是非常有用的。下面就来熟悉一下MySQL支持的4种运算符都具备哪些功能。
-
算术运算符:执行算术运算,例如:加、减、乘、除等。
-
比较运算符:包括大于、小于、等于或者不等于,等等。主要用于数值的比较、字符串的匹配等方面。例如:LIKE、IN、BETWEEN AND和IS NULL等都是比较运算符,还包括正则表达式的REGEXP也是比较运算符。
-
逻辑运算符:包括与、或、非和异或等逻辑运算符。其返回值为布尔型,真值(1或true)和假值(0或false)。
-
位运算符:包括按位与、按位或、按位取反、按位异或、按位左移和按位右移等位运算符。位运算必须先将数据转换为二进制,然后在二进制格式下进行操作,运算完成后,将二进制的值转换为原来的类型,返回给用户。
算术运算符
| 符号 | 作用 | 符号 | 作用 |
|---|---|---|---|
+ |
加法运算 | - |
减法运算 |
* |
乘法运算 | / |
除法运算 |
% |
求余运算 | DIV |
出发运算,返回商,同『/』 |
MOD |
求余运算,返回余数,同【%】 |
比较运算符
| 运算符 | 名称 | 示例 | 运算符 | 名称 | 示例 |
|---|---|---|---|---|---|
= |
等于 | id=5 |
> |
大于 | id>5 |
< |
小于 | id<5 |
>= |
大于等于 | id>=5 |
<= |
小于等于 | id<=5 |
<> |
不等于 | id<>5 |
!= |
不等于 | id!=5 |
IS NULL |
n/a 为空 | id IS NULL |
IS NOT NULL |
非空 | id IS NOT NULL |
IN |
范围 | id IN (3,4,5) |
BETWEEN AND |
范围 | id BETWEEN 2 AND 6 |
NOT IN |
范围 | id NOT IN (3,4,5) |
LIKE |
模式匹配 | name LIKE ('%Gad%') |
NOT LIKE |
模式匹配 | name NOT LIKE ('%Gad%') |
REGEXP |
正则表达式 | name REGEXP '正则表达式' |
逻辑运算符
| 符号 | 作用 | 符号 | 作用 |
|---|---|---|---|
&& |
与 | AND |
与 |
|| |
或 | OR |
或 |
! |
非 | NOT |
非 |
| XOR | 异或 |
位运算符
| 符号 | 名称 | 作用 |
|---|---|---|
| |
位或 | 对应的二进制位有一个或两个为 1 ,则该位的运算结果为 1 ,否则为 0 |
& |
位与 | 对应的二进制位都为 1 ,则该位的运算结果为 1 ,否则为 0 |
^ |
位异或 | 对应的二进制位不相同时,结果为 1 ,否则为 0 |
<< |
位左移 | 使指定的二进制位都左移指定的位数,左移指定位之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐 |
>> |
位右移 | 使指定的二进制位都右移指定的位数,右移指定位之后,右边低位的数值将被移出并丢弃,左边高位空出的职位用 0 补齐 |
~ |
位取反 | 将对应的二进制数逐位反转,即 1 取反后变 0 , 0 取反后变 1 |
运算符的优先级
| 优先级 | 运算符 |
|---|---|
| 1 | ! |
| 2 | ~ |
| 3 | ^ |
| 4 | *,/(DIV),%(MOD) |
| 5 | +,- |
| 6 | >>,<< |
| 7 | & |
| 8 | | |
| 9 | =(比较运算),<=>,<,<=,>,>=,!=,<>,IN,IS NULL,LIKE,REGEXP |
| 10 | BETWEEN AND,CASE,WHEN,THEN,ELSE |
| 11 | NOT |
| 12 | &&,AND |
| 13 | ||,OR,XOR |
| 14 | =(赋值运算),:= |


