逻辑和位运算符
逻辑非 (!)
功能:对表达式进行逻辑非操作,即如果表达式为真(true),返回假(false);如果表达式为假(false),返回真(true)。
参数:
expr:布尔类型表达式。
返回结果:
- 布尔类型值。
示例:
按位非 (~)
功能:对表达式进行按位非操作,即将每一位的0变成1,1变成0。
参数:
expr:整数类型表达式。
返回结果:
- 与输入表达式相同类型的值。
示例:
不等于 (!=)
功能:比较两个表达式,如果它们不相等,返回真(true)。
参数:
expr1:布尔类型表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
取模 (%)
功能:返回两个数值表达式相除的余数。
参数:
expr1:数值类型表达式,包括 float、double、decimal、tinyint、smallint、int、bigint。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入参数相同类型的值。
示例:
乘法 (*)
功能:返回两个数值表达式的乘积。
参数:
expr1:数值类型表达式,包括 float、double、decimal、tinyint、smallint、int、bigint。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入参数相同类型的值。
示例:
加法 (+)
功能:返回两个数值表达式的和。
参数:
expr1:数值类型表达式,包括 float、double、decimal、tinyint、smallint、int、bigint。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入参数相同类型的值。
示例:
正号 (+)
功能:返回表达式的值,不进行任何改变。
参数:
expr:数值类型表达式。
返回结果:
- 与输入参数相同类型的值。
示例:
减法 (-)
功能:返回两个数值表达式的差。
参数:
expr1:数值类型表达式,包括 float、double、decimal、tinyint、smallint、int、bigint。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入参数相同类型的值。
示例:
负号 (-)
功能:返回表达式的负值。
参数:
expr:数值类型表达式。
返回结果:
- 与输入参数相同类型的值。
示例:
除法 (/)
功能:返回两个数值表达式相除的商。
参数:
expr1:数值类型表达式,包括 float、double、decimal。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入参数相同类型的值。
示例:
整数除法 (DIV)
功能:返回两个数值表达式相除的整数部分。
参数:
dividend:被除数,数值类型表达式。divisor:除数,与被除数相同类型的表达式。
返回结果:
- 整数类型值。
示例:
小于 (<)
功能:比较两个表达式,如果第一个表达式小于第二个,返回真(true)。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
小于等于 (<=)
功能:比较两个表达式,如果第一个表达式小于或等于第二个,返回真(true)。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
大于 (>)
功能:比较两个表达式,如果第一个表达式大于第二个,返回真(true)。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
大于等于 (>=)
功能:比较两个表达式,如果第一个表达式大于或等于第二个,返回真(true)。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
等于 (=)
功能:比较两个表达式,如果它们相等,返回真(true)。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
等于 (==)
功能:比较两个表达式,如果它们相等,返回真(true)。功能与 = 相同。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
不等于 (<>)
功能:比较两个表达式,如果它们不相等,返回真(true)。功能与 != 相同。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
NULL 安全等于 (<=>)
功能:比较两个表达式,与 = 类似,但对 NULL 值有特殊处理。如果两个值都是 NULL,返回真(true);如果其中一个是 NULL,返回假(false)。等价于 SQL 标准的 IS NOT DISTINCT FROM。
参数:
expr1:可比较类型的表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 布尔类型值。
示例:
逻辑与 (AND)
功能:对两个布尔表达式进行逻辑与操作。只有当两个表达式都为真(true)时,返回真(true)。
参数:
expr1:布尔类型表达式。expr2:布尔类型表达式。
返回结果:
- 布尔类型值。
示例:
逻辑或 (OR)
功能:对两个布尔表达式进行逻辑或操作。只要有一个表达式为真(true),返回真(true)。
参数:
expr1:布尔类型表达式。expr2:布尔类型表达式。
返回结果:
- 布尔类型值。
示例:
逻辑非 (NOT)
功能:对布尔表达式进行逻辑非操作。与 ! 运算符功能相同。
参数:
expr:布尔类型表达式。
返回结果:
- 布尔类型值。
示例:
按位与 (&)
功能:对两个整数表达式进行按位与操作。
参数:
expr1:整数类型表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入表达式相同类型的值。
示例:
按位或 (|)
功能:对两个整数表达式进行按位或操作。
参数:
expr1:整数类型表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入表达式相同类型的值。
示例:
按位异或 ()
功能:对两个整数表达式进行按位异或操作。
参数:
expr1:整数类型表达式。expr2:与expr1相同类型的表达式。
返回结果:
- 与输入表达式相同类型的值。
示例:
字符串连接 (||)
功能:连接两个字符串表达式。
参数:
expr1:字符串类型表达式。expr2:字符串类型表达式。
返回结果:
- 字符串类型值。
示例:
类型转换 (::)
功能:将表达式转换为指定的数据类型。这是 PostgreSQL 风格的类型转换语法,等价于 CAST(expr AS type)。支持链式转换。
语法:
示例:
IS [NOT] DISTINCT FROM
功能:NULL 安全的等值比较。与 = 不同,当两个值都是 NULL 时返回 true(而非 NULL),当一个值是 NULL 另一个不是时返回 false(而非 NULL)。IS NOT DISTINCT FROM 等价于 <=>。
语法:
返回结果:
- 布尔类型值,永远不会返回 NULL。
示例:
BETWEEN ... AND
功能:判断表达式的值是否在指定的范围内(包含边界值)。
语法:
返回结果:
- 布尔类型值。
expr BETWEEN lower AND upper等价于expr >= lower AND expr <= upper。
示例:
LIKE ANY / LIKE SOME / LIKE ALL
功能:将表达式与多个模式进行 LIKE 匹配。LIKE ANY(或 LIKE SOME)在任一模式匹配时返回 true;LIKE ALL 在所有模式都匹配时返回 true。
语法:
返回结果:
- 布尔类型值。
示例:
ILIKE
功能:不区分大小写的 LIKE 匹配。用法与 LIKE 完全相同,但匹配时忽略大小写。同样支持 ESCAPE 子句和 ANY/ALL 形式。
语法:
示例:
IS [NOT] TRUE / FALSE / UNKNOWN
功能:判断布尔表达式的值是否为 TRUE、FALSE 或 UNKNOWN(NULL)。与直接比较不同,这些谓词不会因为 NULL 而返回 NULL。
语法:
返回结果:
- 布尔类型值,永远不会返回 NULL。
示例:
RLIKE / REGEXP
功能:使用正则表达式匹配字符串。RLIKE 和 REGEXP 是同义词。
语法:
返回结果:
- 布尔类型值。如果 expr 匹配正则表达式 pattern 则返回 true。
示例:
