天天看點

SQLite 運算符(http://www.w3cschool.cc/sqlite/sqlite-operators.html)SQLite 運算符

運算符是一個保留字或字元,主要用于 sqlite 語句的 where 子句中執行操作,如比較和算術運算。

運算符用于指定 sqlite 語句中的條件,并在語句中連接配接多個條件。

算術運算符

比較運算符

邏輯運算符

位運算符

假設變量 a=10,變量 b=20,則:

運算符

描述

執行個體

+

加法 - 把運算符兩邊的值相加

a + b 将得到 30

-

減法 - 左操作數減去右操作數

a - b 将得到 -10

*

乘法 - 把運算符兩邊的值相乘

a * b 将得到 200

/

除法 - 左操作數除以右操作數

b / a 将得到 2

%

取模 - 左操作數除以右操作數後得到的餘數

b % a will give 0

下面是 sqlite 算術運算符的簡單執行個體:

==

檢查兩個操作數的值是否相等,如果相等則條件為真。

(a == b) 不為真。

=

(a = b) 不為真。

!=

檢查兩個操作數的值是否相等,如果不相等則條件為真。

(a != b) 為真。

<>

(a <> b) 為真。

>

檢查左操作數的值是否大于右操作數的值,如果是則條件為真。

(a > b) 不為真。

<

檢查左操作數的值是否小于右操作數的值,如果是則條件為真。

(a < b) 為真。

>=

檢查左操作數的值是否大于等于右操作數的值,如果是則條件為真。

(a >= b) 不為真。

<=

檢查左操作數的值是否小于等于右操作數的值,如果是則條件為真。

(a <= b) 為真。

!<

檢查左操作數的值是否不小于右操作數的值,如果是則條件為真。

(a !< b) 為假。

!>

檢查左操作數的值是否不大于右操作數的值,如果是則條件為真。

(a !> b) 為真。

假設 company 表有以下記錄:

下面的執行個體示範了各種 sqlite 比較運算符的用法。

在這裡,我們使用 where 子句,這将會在後邊單獨的一個章節中講解,但現在您需要明白,where 子句是用來設定 select 語句的條件語句。

下面的 select 語句列出了 salary 大于 50,000.00 的所有記錄:

下面的 select 語句列出了 salary 等于 20,000.00 的所有記錄:

下面的 select 語句列出了 salary 不等于 20,000.00 的所有記錄:

下面的 select 語句列出了 salary 大于等于 65,000.00 的所有記錄:

下面是 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 邏輯運算符的用法。

下面的 select 語句列出了 age 大于等于 25 且工資大于等于 65000.00 的所有記錄:

下面的 select 語句列出了 age 大于等于 25 或工資大于等于 65000.00 的所有記錄:

下面的 select 語句列出了 age 不為 null 的所有記錄,結果顯示所有的記錄,意味着沒有一個記錄的 age 等于 null:

下面的 select 語句列出了 name 以 'ki' 開始的所有記錄,'ki' 之後的字元不做限制:

下面的 select 語句列出了 age 的值為 25 或 27 的所有記錄:

下面的 select 語句列出了 age 的值既不是 25 也不是 27 的所有記錄:

下面的 select 語句列出了 age 的值在 25 與 27 之間的所有記錄:

下面的 select 語句使用 sql 子查詢,子查詢查找 salary > 65000 的帶有 age 字段的所有記錄,後邊的 where 子句與 exists 運算符一起使用,列出了外查詢中的 age 存在于子查詢傳回的結果中的所有記錄:

下面的 select 語句使用 sql 子查詢,子查詢查找 salary > 65000 的帶有 age 字段的所有記錄,後邊的 where 子句與 > 運算符一起使用,列出了外查詢中的 age 大于子查詢傳回的結果中的年齡的所有記錄:

位運算符作用于位,并逐位執行操作。真值表 & 和 | 如下:

p

q

p & q

p | q

1

假設如果 a = 60,且 b = 13,現在以二進制格式,它們如下所示:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

~a  = 1100 0011

下表中列出了 sqlite 語言支援的位運算符。假設變量 a=60,變量 b=13,則:

&

如果同時存在于兩個操作數中,二進制 and 運算符複制一位到結果中。

(a & b) 将得到 12,即為 0000 1100

|

如果存在于任一操作數中,二進制 or 運算符複制一位到結果中。

(a | b) 将得到 61,即為 0011 1101

~

二進制補碼運算符是一進制運算符,具有"翻轉"位效應。

(~a ) 将得到 -61,即為 1100 0011,2 的補碼形式,帶符号的二進制數。

<<

二進制左移運算符。左操作數的值向左移動右操作數指定的位數。

a << 2 将得到 240,即為 1111 0000

>>

二進制右移運算符。左操作數的值向右移動右操作數指定的位數。

a >> 2 将得到 15,即為 0000 1111

下面的執行個體示範了 sqlite 位運算符的用法: