Sqlite 简明教程

SQLite - Operators

What is an Operator in SQLite?

运算符是保留字或字符,主要用于 SQLite 语句的 WHERE 子句中,用于执行操作(例如比较和算术运算)。

运算符用于指定 SQLite 语句中的条件,并作为语句中多个条件的连接词。

  1. Arithmetic operators

  2. Comparison operators

  3. Logical operators

  4. Bitwise operators

SQLite Arithmetic Operators

假设变量 a 保存 10 而变量 b 保存 20,那么 SQLite 算术运算符将按如下方式使用 −

Operator

Description

Example

+ (Addition)

添加运算符两侧的值

a + b 将得到 30

- (Subtraction)

从左操作数减去右操作数

a - b 将得到 -10

* (Multiplication)

乘以运算符两侧的值

a * b 将得到 200

/ (Division)

将左操作数除以右操作数

b / a 将得到 2

% (Modulus)

将左操作数除以右操作数并返回余数

b % a 将得到 0

SQLite Comparison Operators

假设变量 a 保存 10 而变量 b 保存 20,那么 SQLite 比较运算符将按如下方式使用

Operator

Description

Example

==

检查两个操作数的值是否相等,如果相等则条件为真。

(a == b)为 false。

=

检查两个操作数的值是否相等,如果相等则条件为真。

(a = b) 不为真。

!=

检查两个操作数的值是否相等,如果不相等,则条件为真。

(a != b) 为 true。

<>

检查两个操作数的值是否相等,如果不相等,则条件为真。

(a <> b) 为真。

>

检查左操作数的值是否大于右操作数的值,如果大于,则条件为真。

(a > b) 为 false。

<

检查左操作数的值是否小于右操作数的值,如果小于,则条件为真。

(a < b) 为 true。

>=

检查左操作数的值是否大于或等于右操作数的值,如果大于或等于,则条件为真。

(a >= b) 为 false。

检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件为真。

(a ⇐ b) 为 true。

!<

检查左操作数的值是否不小于右操作数的值,如果不小于,则条件为真。

(a !< b) 为假。

!>

检查左操作数的值是否不大于右操作数的值,如果不大于,则条件为真。

(a !> b) 为真。

SQLite Logical Operators

下面是 SQLite 中提供的所有逻辑运算符的列表。

Sr.No.

Operator & Description

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 等。 This is negate operator.

9

OR OR 运算符用于组合 SQL 语句 WHERE 子句中的多个条件。

10

IS NULL NULL 运算符用于将一个值与 NULL 值进行比较。

11

IS IS 运算符的工作方式类似于 =

12

IS NOT IS 运算符的工作方式类似于 !=

13

*

* 将两个不同的字符串相加并生成一个新字符串。

14

UNIQUE UNIQUE 操作符搜索指定表的每行以查找唯一性(没有重复项)。

SQLite Bitwise Operators

按位运算符对位进行操作,并执行按位运算。以下是 &| 的真值表。

p

q

p &

p

q

0

0

0

0

0

1

0

1

1

1

1

1

1

0

0

假设如果 A = 60;且 B = 13,那么在二进制格式中,它们如下所示 −

A = 0011 1100

B = 0000 1101

A&B = 0000 1100

A|B = 0011 1101

~A  = 1100 0011

The Bitwise operators supported by SQLite language are listed in the following table. Assume variable *A* holds 60 and variable *B* holds 13, then −

link:../sqlite/sqlite_bitwise_operators.html[Show Examples]
[%autowidth]
|===

|Operator|Description|Example
|&|Binary AND Operator copies a bit to the result, if it exists in both operands.|(A & B) will give 12 which is 0000 1100
|||Binary OR Operator copies a bit, if it exists in either operand.|(A | B) will give 61 which is 0011 1101
|~|Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.|(~A ) will give -61 which is 1100 0011 in 2's complement form due to a signed binary number
|<<|Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.|A << 2 will give 240 which is 1111 0000
|>>|Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.|A >> 2 will give 15 which is 0000 1111
|===