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) 不成立。 |
= |
检查两个操作数的值是否相等,如果相等则条件为真。 | (a = b) 不成立。 |
!= |
检查两个操作数的值是否不相等,如果不相等则条件为真。 | (a != b) 成立。 |
<> |
检查两个操作数的值是否不相等,如果不相等则条件为真。 | (a <> b) 成立。 |
> |
检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (a > b) 不成立。 |
< |
检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (a < b) 成立。 |
>= |
检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (a >= b) 不成立。 |
<= |
检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (a <= b) 成立。 |
!< |
检查左操作数的值是否不小于右操作数的值,如果是则条件为真。 | (a !< b) 不成立。 |
!> |
检查左操作数的值是否不大于右操作数的值,如果是则条件为真。 | (a !> b) 成立。 |
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运算符用于使用通配符运算符将一个值与类似的值进行比较。此外,GLOB是区分大小写的,与LIKE不同。 |
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 操作符在指定的表中搜索每一行的唯一性(无重复)。 |
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,然后−
运算符 | 描述 | 示例 |
---|---|---|
& |
二进制与运算符:如果两个操作数中都存在相同的位,则将该位复制到结果中。 | (A & B) 将给出12,即0000 1100 |
| |
二进制或运算符:如果任意一个操作数中存在相同的位,则将该位复制到结果中。 | (A | B) 将给出61,即0011 1101 |
~ |
二进制取反运算符是一元运算符,其效果是’翻转’位。 | (~A) 将给出-61,即1100 0011,这是因为二进制有符号数的补码形式。 |
<< |
二进制左移运算符:左操作数的值将左移指定的位数。 | A << 2将给出240,即1111 0000 |
>> |
二进制右移运算符:左操作数的值将右移指定的位数。 | A >> 2将给出15,即0000 1111 |