SQLite 运算符
当我们使用WHERE子句执行比较和算术运算之类的操作时,SQLite运算符是SQLite语句中使用的保留字或字符。
运算符可以用于指定条件,也可以作为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) is true. |
> = |
用于检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 |
(a> = b)不正确。 |
<= |
用于检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。 |
(a <= b)是真的。 |
! |
用于检查左操作数的值是否不小于右操作数的值,如果是,则条件成立。 |
(a !< b) is false. |
!> |
用于检查左操作数的值是否不大于右操作数的值,如果是,则条件为真。 |
(a!> b)是真的。 |
SQLite逻辑运算符
以下是SQLite中的逻辑运算符列表:
符号 |
说明 |
AND |
AND运算符允许SQL语句的WHERE子句中存在多个条件。 |
BETWEEN |
BETWEEN运算符用于在给定最小值和最大值的情况下搜索一组值内的值。 |
EXISTS |
EXISTS运算符用于搜索满足特定条件的指定表中是否存在行。 |
IN |
IN运算符用于将值与已指定的文字值列表进行比较。 |
NOT IN |
这是IN运算符的取反,用于将一个值与已指定的文字值列表进行比较。 |
LIKE |
LIKE运算符用于使用通配符将一个值与相似值进行比较。 |
GLOB |
GLOB运算符用于使用通配符运算符将值与相似值进行比较。而且,glob区分大小写,与like不同。 |
NOT |
NOT运算符颠倒了使用它的逻辑运算符的含义。例如: EXISTS,NOT BETWEEN,NOT IN等。这些被称为求反运算符。 |
OR |
OR运算符用于在SQL语句的where子句中组合多个条件。 |
IS 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
符号 |
说明 |
示例 |
& |
如果两个操作数中都存在二进制AND运算符,则会将其复制到结果中。 |
(a&b)将给出12,即0000 1100 |
| |
二进制或运算符会复制一个操作数中存在的位。 |
(a | b)将给出61,即0011 1101 |
〜 |
二进位补码运算符是一元的,具有"翻转"位的作用。 |
(〜a)将给出-61,即2的补码形式,即1100 0011,这是由于带符号的二进制数。 |
<< |
二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 |
a << 2将得到240,即1111 0000 |
>> |
二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 |
a >> 2将得到15,即0000 1111 |