操作符概述
操作符用于连接操作数或参数并返回结果。从语法上讲,运算符可以出现在操作数之前、操作数之后或两个操作数之间,因此,操作符可以分为一元运算符和二元运算符。
- 一元运算符
运算符 操作数
- 二元运算符
操作数1 运算符 操作数2
M-Compatibility模式下当前支持操作符及各操作符的简短说明如表1所示。
|
操作类型 |
操作符名称 |
操作数类型 |
描述 |
|---|---|---|---|
|
逻辑操作 |
NOT (!) |
一元 |
逻辑非。 |
|
AND(&&) |
二元 |
逻辑与。 |
|
|
OR(||) |
二元 |
逻辑或。 |
|
|
XOR |
二元 |
逻辑异或。 |
|
|
位操作 |
& |
二元 |
按位与。 |
|
| |
二元 |
按位或。 |
|
|
^ |
二元 |
按位异或。 |
|
|
<< |
二元 |
左移。 |
|
|
>> |
二元 |
右移。 |
|
|
~ |
一元 |
按位非。 |
|
|
模式匹配 |
[NOT] LIKE |
二元 |
简单模式匹配。 |
|
比较操作 |
< |
二元 |
小于。 |
|
> |
二元 |
大于。 |
|
|
<= |
二元 |
小于或等于。 |
|
|
>= |
二元 |
大于或等于。 |
|
|
= |
二元 |
等于。 |
|
|
<>或!= |
二元 |
不等于。 |
|
|
<=> |
二元 |
NULL安全等于。 |
|
|
[NOT] BETWEEN AND |
三元 |
判断操作数1是否大于等于操作数2且小于等于操作数3。 |
|
|
IS |
二元 |
判断是否与布尔值等价。 |
|
|
IS NOT |
二元 |
判断是否与布尔值不等价(IS的否定)。 |
|
|
IS NOT NULL |
一元(操作数 运算符) |
判断是否非NULL。 |
|
|
IS NULL |
一元(操作数 运算符) |
判断是否为NULL。 |
|
|
算术操作 |
+ |
一元/二元 |
一元表示正数,二元表示加法。 |
|
- |
一元/二元 |
一元表示负数,二元表示减法。 |
|
|
* |
二元 |
乘法操作符。 |
|
|
/ |
二元 |
除法操作符。 |
|
|
%或MOD |
二元 |
整数除法,返回余数。 |
|
|
DIV |
二元 |
整数除法,返回商值。 |
|
|
类型转换 |
BINARY |
一元 |
转换为BINARY类型。 |
操作符支持的数据类型
|
类型分类 |
类型 |
|---|---|
|
BOOLEAN/BOOL |
|
|
BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB |
|
|
CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT |
|
|
DATE、TIME、TIMESTAMP、DATETIME、YEAR |
|
|
BIT |
|
|
TINYINT、SMALLINT、MEDIUMINT、INT/INTEGER、BIGINT、NUMERIC/DECIMAL、DEC、FIXED、FLOAT、FLOAT4、FLOAT8、DOUBLE、TINYINT UNSIGNED、SMALLINT UNSIGNED、MEDIUMINT UNSIGNED、INT/INTEGER UNSIGNED、BIGINT UNSIGNED |
数据类型详情参考数据类型。
操作符优先级
运算符从优先级从上到下越来越高,同一行上的运算符具有相同的优先级,具体见表3。