SQLite運算子


當使用WHERE子句執行比較和算術運算時需要使用到運算子,SQLite運算子是SQLite語句中使用的保留字或字元。

可以使用運算子來指定條件和SQLite語句中多個條件的連線。

SQLite中主要有4種型別的運算子:

  • 算術運算子
  • 比較運算子
  • 邏輯運算子
  • 按位元運算子

SQLite算術運算子

下表指定了SQLite中的算術運算子。 在這個表中,有兩個變數「a」和「b」,它們的值分別是50100

運算子 說明 範例
+ 加法運算子:用於將運算子兩側的值相加 a+b = 150
- 減法運算子:用於從左運算元減去右運算元。 a-b = -50
* 乘法運算子:用於將運算子兩邊的運算元相乘。 a*b = 5000
/ 除法運算子:它是將左運算元除以右運算元。 a/b = 0.5
% 模數運算子:用於通過左運算元除以右運算元並返回餘數。 b/a = 0

SQLite比較運算子

下表中列出了SQLite中的比較運算子。 在這個表中,有兩個變數「a」和「b」,它們的值分別是50100

運算子 說明 範例
== 它用於檢查兩個運算元的值是否相等,如果是,則條件求值結果為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邏輯運算子

以下是SQLite中的邏輯運算子列表:

運算子 說明
AND AND運算子允許在SQL語句WHERE子句中存在(或使用)多個條件。
BETWEEN BETWEEN運算子用於搜尋位於給定最小值和最大值的範圍內的值。
EXISTS EXISTS運算子用於搜尋符合特定條件的指定表中的行的存在。
IN IN運算子用於將值與已指定的文字值列表中的值進行比較。
NOT IN IN運算子用於將值與指定的文字值列表中的值進行比較的否定。
LIKE LIKE運算子用於使用萬用字元運算子將值與類似值進行比較。
GLOB GLOB運算子用於使用萬用字元運算子將值與類似值進行比較。 此外,glob是區分大小寫的,這點不同於like操作符。
NOT NOT運算子反轉使用它的邏輯運算子的含義。 例如:NOT EXISTSNOT BETWEENNOT 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
0 0 0 0
0 1 0 1
1 1 1 1
1 0 0 1

假設有兩個變數「a」和「b」,兩個變數的值分別是:6013。那麼ab的二進位制值是:

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