运算符是一个保留字或字符,主要用于指定 SQL 语句中的条件,并在语句中连接多个条件。
算术运算符
算术运算符是用来处理四则运算的符号,是最简单最常用的符号,尤其是数字的处理,几乎都会使用到算术运算符号。
假设变量 a=1,变量 b=2,则:
运算符 | 描述 | 示例 |
+ | 加法:运算符两边的值相加 | a + b |
- | 减法:运算符左边减去运算符右边 | a - b |
* | 乘法:把运算符两边的值相乘 | a * b |
/ | 除法:运算符左边除以运算符右边 | b / a |
% | 取模:运算符左边除以运算符右边后得到的余数 | b % a |
比较运算符
比较运算符用于判断值的大小关系,支持任何可比较的类型,例如:int、long、double 和 text 等。
假设变量 a=1,变量 b=2,则:
运算符 | 描述 | 示例 |
= | 判断运算符两边的值是否相等,如果相等则条件为真。 | a = b |
!= | 判断运算符两边的值是否相等,如果不相等则条件为真。 | a != b |
<> | 判断运算符两边的值是否相等,如果不相等则条件为真。 | a <> b |
> | 判断运算符左边的值是否大于运算符右边的值,如果是则条件为真。 | a > b |
< | 判断运算符左边的值是否小于运算符右边的值,如果是则条件为真。 | a < b |
>= | 判断运算符左边的值是否大于等于运算符右边的值,如果是则条件为真。 | a >= b |
<= | 判断运算符左边的值是否小于等于运算符右边的值,如果是则条件为真。 | a <= b |
IN | IN 运算符用于把某个值与一系列指定列表的值进行比较。 | status IN (200,206,404) |
NOT IN | IN 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。 | status NOT IN (200,206,404) |
BETWEEN AND | BETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。 | status between 200 AND 400 |
LIKE | LIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。%代表零个、一个或者多个字;_代表单个数字或者字符。 | url LIKE '%.mp4' |
IS NULL | NULL 运算符用于把某个值与 NULL 值进行比较,为空为真。 | status IS NULL |
IS NOT NULL | NULL 运算符用于把某个值与 NULL 值进行比较,不为空为真。 | status IS NOT NULL |
DISTINCT | 语法: x IS DISTINCT FROM y 或 x IS NOT DISTINCT FROM y 。 | NULL IS NOT DISTINCT FROM NULL |
LEAST | 语法: LEAST(x, y...) 返回 x,y...中的最小值。 | LEAST(1,2,3) |
GREATEST | 语法: GREATEST(x, y...) 返回 x,y...中的最大值。 | GREATEST(1,2,3) |
ALL | 语法: x expression operator ALL ( subquery ) x 满足所有条件时,返回 true,operator 支持 <、>、<=、>=、=、<>、!= 。 | 示例1:21 < ALL (VALUES 19, 20, 21) 示例2:* | SELECT 200 = ALL(SELECT status) |
ANY / SOME | 语法: x expression operator ANY ( subquery ) 或 x expression operator SOME ( subquery ) x 满足任意一个条件时,返回 true,operator 支持 <、>、<=、>=、=、<>、!= 。 | 示例1:'hello' = ANY (VALUES 'hello', 'world') 示例2:* | SELECT 200 = ANY(SELECT status) |
<> 与
DISTINCT
运算符差异:x | y | x = y | x <> y | x IS DISTINCT FROM y | x IS NOT DISTINCT FROM y |
1 | 1 | true | false | false | true |
1 | 2 | false | true | true | false |
1 | null | null | null | true | false |
null | null | null | null | false | true |