當使用WHERE
子句執行比較和算術運算時需要使用到運算子,SQLite運算子是SQLite語句中使用的保留字或字元。
可以使用運算子來指定條件和SQLite語句中多個條件的連線。
SQLite中主要有4
種型別的運算子:
下表指定了SQLite中的算術運算子。 在這個表中,有兩個變數「a
」和「b
」,它們的值分別是50
和100
。
運算子 | 說明 | 範例 |
---|---|---|
+ |
加法運算子:用於將運算子兩側的值相加 | a+b = 150 |
- |
減法運算子:用於從左運算元減去右運算元。 | a-b = -50 |
* |
乘法運算子:用於將運算子兩邊的運算元相乘。 | a*b = 5000 |
/ |
除法運算子:它是將左運算元除以右運算元。 | a/b = 0.5 |
% |
模數運算子:用於通過左運算元除以右運算元並返回餘數。 | b/a = 0 |
下表中列出了SQLite中的比較運算子。 在這個表中,有兩個變數「a
」和「b
」,它們的值分別是50
和100
。
運算子 | 說明 | 範例 |
---|---|---|
== |
它用於檢查兩個運算元的值是否相等,如果是,則條件求值結果為true ,否則返回false 。 |
(a == b) 的結果為false 。 |
= |
它用於檢查兩個運算元的值是否相等,如果是,則條件求值結果為true ,否則返回false 。 |
(a = b) 的結果為false 。 |
!= |
它用於檢查兩個運算元的值是否相等,如果兩個值不相等則條件求值結果為true 。 |
(a != b) 的結果為true 。 |
<> |
它用於檢查兩個運算元的值是否相等,如果兩個值不相等則條件求值結果為true 。 |
(a <> b) 的結果為true 。 |
> |
它用於檢查左運算元的值是否大於右運算元的值,如果是,則條件求值結果為true 。 |
(a > b) 結果為false |
< |
它用於檢查左運算元的值是否小於右運算元的值,如果是,則條件求值結果為true 。 |
(a < b) 結果為true |
>= |
用於檢查左運算元的值是否大於或等於右運算元的值,如果是,則條件求值結果為true 。 |
(a >= b) 結果為false |
<= |
它用於檢查左運算元的值是否小於或等於右運算元的值,如果是,則條件求值結果為true 。 |
(a <= b) 結果為true |
!< |
它用於檢查左運算元的值是否不小於右運算元的值,如果是,則條件求值結果為true 。 |
(a !< b) 結果為false |
!> |
它用於檢查左運算元的值是否不大於右運算元的值,如果是,則條件求值結果為true 。 |
(a !> b) 結果為true |
以下是SQLite中的邏輯運算子列表:
運算子 | 說明 |
---|---|
AND | AND運算子允許在SQL語句WHERE子句中存在(或使用)多個條件。 |
BETWEEN | BETWEEN運算子用於搜尋位於給定最小值和最大值的範圍內的值。 |
EXISTS | EXISTS運算子用於搜尋符合特定條件的指定表中的行的存在。 |
IN | IN運算子用於將值與已指定的文字值列表中的值進行比較。 |
NOT IN | IN運算子用於將值與指定的文字值列表中的值進行比較的否定。 |
LIKE | LIKE運算子用於使用萬用字元運算子將值與類似值進行比較。 |
GLOB | GLOB運算子用於使用萬用字元運算子將值與類似值進行比較。 此外,glob 是區分大小寫的,這點不同於like 操作符。 |
NOT | NOT運算子反轉使用它的邏輯運算子的含義。 例如:NOT EXISTS ,NOT BETWEEN ,NOT IN 等。這些被稱為否定運算子。 |
OR | OR運算子用於組合SQL語句where子句中的多個條件。 |
IS NULL | NULL 運算子用於將值與空(null )值進行比較。 |
IS | IS 運算子工作類似於= 運算子 |
IS NOT | IS NOT 操作符類似於!= 運算子 |
該運算子用於將運算子兩側的兩個不同的字串連線建立為一個新的字串。 | |
UNIQUE | UNIQUE運算子搜尋指定表的每一行記錄的唯一性(值不重複)。 |
SQLite位運算子工作在位上並執行逐位元運算。
下面是二進位制AND
(&
)和二進位制OR
(|
)的真值表:
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運算子應用在兩個運算元上,則二進位制AND運算子將對該結果複製一位。 | (a & b ) 將會得到 12 也就是 0000 1100 |
二進位制OR運算子如果存在於任一運算元中,則複製一位。 | (ab) 將會得到 61 也就是 0011 1101 |
|
~ | 二進位制二補數運算子是一元的,具有「翻轉」位的作用。 | (~a ) 將會得到-61 也就是 1100 0011 |
<< | 二進位制左移操作符,左運算元值按右運算元指定的位數向左移動。 | a << 2 將會得到 240 也就是 1111 0000 |
>> | 二進位制右移操作符,左運算元值按右運算元指定的位數向右移動。 | a >> 2 將會得到 15 也就是 0000 1111 |