SQLite 运算符
SQLite运算符是在SQLite语句中用于使用WHERE子句进行比较和算术运算等操作时使用的保留字或字符。
运算符可用于指定条件,并且可用作SQLite语句中多个条件的连接词。
SQLite中主要有4种类型的运算符:
- 算术运算符
- 比较运算符
- 逻辑运算符
- 位运算符
SQLite算术运算符
以下表格指定了SQLite中的不同算术运算符。在此表格中,我们有两个变量”a”和”b”,其值分别为50和100。
操作符 | 描述 | 示例 |
---|---|---|
+ |
加法操作符:用于将操作符两侧的值相加。 | a+b = 150 |
- |
减法操作符:用于从左操作数中减去右操作数。 | a-b = -50 |
* |
乘法操作符:用于乘以两侧的值。 | a*b = 5000 |
/ |
除法操作符:用于将左操作数除以右操作数。 | a/b = 0.5 |
% |
模运算符:用于将左操作数除以右操作数,并返回余数。 | b/a = 0 |
SQLite比较运算符
下表列出了SQLite中不同的比较运算符。在这个表中,我们有两个变量”a”和”b”,分别保存值50和100。
运算符 | 描述 | 示例 |
---|---|---|
== |
用于检查两个操作数的值是否相等,如果是,则条件为真。 | (a == b) 不为真。 |
= |
用于检查两个操作数的值是否相等,如果是,则条件为真。 | (a = b) 不为真。 |
!= |
用于检查两个操作数的值是否相等,如果不相等,则条件为真。 | (a != b) 为真。 |
< > |
用于检查两个操作数的值是否相等,如果不相等,则条件为真。 | (a < > b) 为真。 |
> |
用于检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 | (a > b) 不为真。 |
< |
用于检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 | (a < b) 为真。 |
>= |
用于检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 | (a >= b) 不为真。 |
<= |
用于检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。 | (a <= b) 为真。 |
!< |
用于检查左操作数的值是否不小于右操作数的值,如果是,则条件为真。 | (a !< b) 为假。 |
!> |
用于检查左操作数的值是否不大于右操作数的值,如果是,则条件为真。 | (a !> b) 为真。 |
SQLite逻辑运算符
以下是SQLite中的逻辑运算符列表:
操作符 | 描述 |
---|---|
AND | AND操作符允许在SQL语句的WHERE子句中存在多个条件。 |
BETWEEN | BETWEEN操作符用于搜索在一组给定的最小值和最大值之间的值。 |
EXISTS | EXISTS操作符用于搜索满足某些条件的特定表中的行是否存在。 |
IN | IN操作符用于将一个值与指定的多个字面值进行比较。 |
NOT IN | NOT IN操作符是IN操作符的否定形式,用于将一个值与指定的多个字面值进行比较。 |
LIKE | LIKE操作符用于使用通配符操作符比较一个值与相似的值。 |
GLOB | GLOB操作符用于使用通配符操作符比较一个值与相似的值。此外,glob是区分大小写的,不像like。 |
NOT | NOT操作符反转其所用的逻辑操作符的含义。例如:EXISTS,NOT BETWEEN,NOT IN等。这些被称为否定操作符。 |
OR | OR操作符用于组合SQL语句的WHERE子句中的多个条件。 |
IS NULL | NULL操作符用于将一个值与null值进行比较。 |
IS | IS操作符的工作方式类似于=。 |
IS NOT | IS NOT操作符的工作方式类似于!=。 |
|| |
此操作符用于将两个不同的字符串相加并生成一个新的字符串。 |
UNIQUE | UNIQUE操作符在指定表的每行中搜索唯一性(无重复项)。 |
SQLite位运算符
SQLite位运算符对位进行操作,逐位执行操作。
查看二进制AND(&)和二进制OR(|
)的真值表:
p | q | 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
运算符 | 描述 | 示例 |
---|---|---|
& |
二进制与运算符,如果位在两个操作数中都存在,则将其复制到结果中。 | (a & b) 会得到12,即0000 1100 |
| |
二进制或运算符,如果位在任一操作数中存在,则将其复制到结果中。 | (a | b) 会得到61,即0011 1101 |
~ |
二进制反码运算符,它是一元运算符,将位进行“翻转”。 | (~a) 会得到-61,即1100 0011,这是由于用补码表示的有符号二进制数字。 |
<< |
二进制左移运算符,左操作数的值被右操作数指定的位数左移。 | a << 2 会得到240,即1111 0000 |
>> |
二进制右移运算符,左操作数的值被右操作数指定的位数右移。 | a >> 2 会得到15,即0000 1111 |