SQLite - 运算符
SQLite 中的运算符是什么?
运算符是保留字或字符,主要用于 SQLite 语句的 WHERE 子句中以执行操作,例如比较和算术运算。
运算符用于在 SQLite 语句中指定条件,并用作语句中多个条件的连词。
- 算术运算符
- 比较运算符
- 逻辑运算符
- 位运算符
SQLite 算术运算符
假设变量 a 持有 10,变量 b 持有 20,那么 SQLite 算术运算符将使用如下 −
运算符 | 说明 | 示例 |
---|---|---|
+ (加法) | 在运算符的任一侧添加值 | a + b 将给出 30 |
- (减法) | 从左手操作数中减去右手操作数 | a - b 将给出 -10 |
* (乘法) | 将运算符两边的值相乘 | a * b 将给出 200 |
/ (除法) | 将左手操作数除以右手操作数 | b / a 将给出 2 |
% (模数) | 将左侧操作数除以右侧操作数并返回余数 | b % a 将给出 0 |
SQLite 比较运算符
假设变量a为10,变量b为20,那么SQLite比较运算符的使用如下
运算符 | 说明 | 示例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果是则条件成立。 | (a == b) is not true. |
= | 检查两个操作数的值是否相等,如果是则条件为真。 | (a = b) is not true. |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件为真。 | (a != b) is true. |
<> | 检查两个操作数的值是否相等,如果值不相等,则条件为真。 | (a <> b) is true. |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 | (a > b) is not true. |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 | (a < b) is true. |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 | (a >= b) is not true. |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。 | (a <= b) is true. |
!< | 检查左操作数的值是否不小于右操作数的值,如果是,则条件为真。 | (a !< b) is false. |
!> | 检查左操作数的值是否不大于右操作数的值,如果是,则条件为真。 | (a !> b) is true. |
SQLite 逻辑运算符
这里列出了 SQLite 中所有可用的逻辑运算符。
序号 | 运算符 & 说明 |
---|---|
1 | AND AND 运算符允许在 SQL 语句的 WHERE 子句中存在多个条件。 |
2 | BETWEEN BETWEEN 运算符用于在给定最小值和最大值的情况下搜索一组值内的值。 |
3 | EXISTS EXISTS 运算符用于搜索指定表中是否存在满足特定条件的行。 |
4 | IN IN 运算符用于将值与已指定的文字值列表进行比较。 |
5 | NOT IN IN 运算符的否定,用于将值与已指定的文字值列表进行比较。 |
6 | LIKE LIKE 运算符用于将值与使用通配符运算符的相似值进行比较。 |
7 | GLOB GLOB 运算符用于使用通配符运算符将值与相似值进行比较。 此外,与 LIKE 不同,GLOB 区分大小写。 |
8 | NOT NOT 运算符反转使用它的逻辑运算符的含义。 例如。 NOT EXISTS、NOT BETWEEN、NOT IN 等。 这是否定运算符。 |
9 | OR OR 运算符用于组合 SQL 语句的 WHERE 子句中的多个条件。 |
10 | IS NULL NULL 运算符用于将值与 NULL 值进行比较。 |
11 | IS IS 运算符的工作方式类似于 = |
12 | IS NOT IS 运算符的工作方式类似于 != |
13 | || 添加两个不同的字符串并创建一个新字符串。 |
14 | UNIQUE UNIQUE 运算符搜索指定表的每一行的唯一性(无重复)。 |
SQLite 位运算符
位运算符对位起作用并执行逐位运算。 以下是 & 和 | 的真值表。
p | q | p & q | p | q |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
假设 A = 60; 和 B = 13,那么在二进制格式中,它们将如下所示 −
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
~A = 1100 0011
SQLite 语言支持的位运算符如下表所示。 假设变量 A 为 60,变量 B 为 13,则 −
运算符 | 说明 | 示例 |
---|---|---|
& | 如果两个操作数中都存在二进制 AND 运算符,则将位复制到结果中。 | (A & B) 将给出 12 即 0000 1100 |
| | 二进制或运算符复制一个位,如果它存在于任一操作数中。 | (A | B) 将给出 61 即 0011 1101 |
~ | 二进制补码运算符是一元的,具有"翻转"位的效果。 | (~A ) 由于有符号二进制数,将给出 -61,即 1100 0011 的 2 补码形式 |
<< | 二进制左移运算符。 左操作数的值向左移动右操作数指定的位数。 | A << 2 将给出 240 即 1111 0000 |
>> | 二进制右移运算符。 左操作数的值向右移动右操作数指定的位数。 | A >> 2 将给出 15 即 0000 1111 |