当使用WHERE
子句执行比较和算术运算时需要使用到运算符,SQLite运算符是SQLite语句中使用的保留字或字符。
可以使用运算符来指定条件和SQLite语句中多个条件的连接。
SQLite中主要有4
种类型的运算符:
下表指定了SQLite中的算术运算符。 在这个表中,有两个变量“a
”和“b
”,它们的值分别是50
和100
。
运算符 | 说明 | 示例 |
---|---|---|
+ |
加法运算符:用于将运算符两侧的值相加 | a+b = 150 |
- |
减法运算符:用于从左操作数减去右操作数。 | a-b = -50 |
* |
乘法运算符:用于将运算符两边的操作数相乘。 | a*b = 5000 |
/ |
除法运算符:它是将左操作数除以右操作数。 | a/b = 0.5 |
% |
模数运算符:用于通过左操作数除以右操作数并返回余数。 | b/a = 0 |
下表中列出了SQLite中的比较运算符。 在这个表中,有两个变量“a
”和“b
”,它们的值分别是50
和100
。
运算符 | 说明 | 示例 |
---|---|---|
== |
它用于检查两个操作数的值是否相等,如果是,则条件求值结果为true ,否则返回false 。 |
(a == b) 的结果为false 。 |
= |
它用于检查两个操作数的值是否相等,如果是,则条件求值结果为true ,否则返回false 。 |
(a = b) 的结果为false 。 |
!= |
它用于检查两个操作数的值是否相等,如果两个值不相等则条件求值结果为true 。 |
(a != b) 的结果为true 。 |
<> |
它用于检查两个操作数的值是否相等,如果两个值不相等则条件求值结果为true 。 |
(a <> b) 的结果为true 。 |
> |
它用于检查左操作数的值是否大于右操作数的值,如果是,则条件求值结果为true 。 |
(a > b) 结果为false |
< |
它用于检查左操作数的值是否小于右操作数的值,如果是,则条件求值结果为true 。 |
(a < b) 结果为true |
>= |
用于检查左操作数的值是否大于或等于右操作数的值,如果是,则条件求值结果为true 。 |
(a >= b) 结果为false |
<= |
它用于检查左操作数的值是否小于或等于右操作数的值,如果是,则条件求值结果为true 。 |
(a <= b) 结果为true |
!< |
它用于检查左操作数的值是否不小于右操作数的值,如果是,则条件求值结果为true 。 |
(a !< b) 结果为false |
!> |
它用于检查左操作数的值是否不大于右操作数的值,如果是,则条件求值结果为true 。 |
(a !> b) 结果为true |
以下是SQLite中的逻辑运算符列表:
运算符 | 说明 |
---|---|
AND | AND运算符允许在SQL语句WHERE子句中存在(或使用)多个条件。 |
BETWEEN | BETWEEN运算符用于搜索位于给定最小值和最大值的范围内的值。 |
EXISTS | EXISTS运算符用于搜索符合特定条件的指定表中的行的存在。 |
IN | IN运算符用于将值与已指定的文字值列表中的值进行比较。 |
NOT IN | IN运算符用于将值与指定的文字值列表中的值进行比较的否定。 |
LIKE | LIKE运算符用于使用通配符运算符将值与类似值进行比较。 |
GLOB | GLOB运算符用于使用通配符运算符将值与类似值进行比较。 此外,glob 是区分大小写的,这点不同于like 操作符。 |
NOT | NOT运算符反转使用它的逻辑运算符的含义。 例如:NOT EXISTS ,NOT BETWEEN ,NOT IN 等。这些被称为否定运算符。 |
OR | OR运算符用于组合SQL语句where子句中的多个条件。 |
IS NULL | NULL 运算符用于将值与空(null )值进行比较。 |
IS | IS 运算符工作类似于= 运算符 |
IS NOT | IS NOT 操作符类似于!= 运算符 |
该运算符用于将运算符两侧的两个不同的字符串连接创建为一个新的字符串。 | |
UNIQUE | UNIQUE运算符搜索指定表的每一行记录的唯一性(值不重复)。 |
SQLite位运算符工作在位上并执行逐位操作。
下面是二进制AND
(&
)和二进制OR
(|
)的真值表:
p | q | p&q | |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
假设有两个变量“a
”和“b
”,两个变量的值分别是:60
和13
。那么a
和b
的二进制值是:
a= 0011 1100 b= 0000 1101 a&b = 0000 1100 a|b = 0011 1101 ~a = 1100 0011
运算符 | 描述 | 示例 |
---|---|---|
& | 如果二进制AND运算符应用在两个操作数上,则二进制AND运算符将对该结果复制一位。 | (a & b ) 将会得到 12 也就是 0000 1100 |
二进制OR运算符如果存在于任一操作数中,则复制一位。 | (ab) 将会得到 61 也就是 0011 1101 |
|
~ | 二进制补码运算符是一元的,具有“翻转”位的作用。 | (~a ) 将会得到-61 也就是 1100 0011 |
<< | 二进制左移操作符,左操作数值按右操作数指定的位数向左移动。 | a << 2 将会得到 240 也就是 1111 0000 |
>> | 二进制右移操作符,左操作数值按右操作数指定的位数向右移动。 | a >> 2 将会得到 15 也就是 0000 1111 |