SQL指令語法速查手冊(八)

邏輯運算子

AND運算子

語法
條件式 AND 條件式
範例:
SELECT * FROM store WHERE class='household' AND price>70;

BETWEEN 運算子

語法
敘述式 BEWTEEN 數值1 AND 數值2
範例:
SELECT * FROM store WHERE price BEWTEEN 10 AND 40;

IN 運算子

語法
敘述式 IN (數值1,數值2)
範例:
SELECT * FROM store WHERE class IN ('office','food')
說明:
IN運算子是用來判斷再子查詢或者清單中具有與指定的值一致的值。在IN運算子前面賦予的值,如果在IN後面子查詢的結果清單中,或者在數值式的清單中具有相同一致的值的話,則會回傳真;如果沒有一致的值的話,則會回傳假。

NOT運算子

語法
NOT 式
範例
SELECT * FROM store WHERE NOT class='food';
說明
NOT 運算子是當右邊的式之值為真時回傳假,為假時回傳真的運算子。

OR運算子

語法
條件式 OR 條件式
範例
SELECT * FROM store WHERE class='food' OR class='office';

ALL 運算子

語法
WHERE 式 比較運算子 ALL (子查詢)
範例
SELECT * FROM store WHERE class = ALL(SELECT class FROM store WHERE class='food');
說明
ALL 運算子是用來由子查詢所傳回來的結果中,滿足所有條件的資料。ALL運算子會依據比較運算子來對每一個值與式子的值進行比較,對所有值都滿足條件時傳回真。例如子查詢的結果傳回三個值,三個值會與比較運算子中指定的條件做判斷,當滿足所有指定條件時回傳真。反之,只要具有任一不滿足的條件則傳回假。傳回真的值會被傳回主查詢中。

ANY運算子

語法
WHERE 式 比較運算子 ANY (子查詢)
範例
SELECT * FROM store WHERE class= ANY (SELECT class FROM store
WHERE class='food');
說明
ANY 運算子是用來求子查詢所傳回結果的值中,滿足任一條件的資料。ANY 運算子會依據比較運算子將每一個值與運算式中的值進行比較,只要滿足其中一條件就會傳回真。例如子查詢傳回三個值得話,這三個值都會對比較運算子中指定的條件進行判斷,只要滿足其中一條件的話就會回傳真。

ANY 與SOME運算子式相同的計算方式。另外如果要求滿足所有條件的時候,則使用ALL運算子。

EXISTS 運算子

語法
WHERE EXISTS (子查詢)
範例
SELECT * FROM store WHERE EXISTS (SELECT class FROM store WHERE class = 'food');

說明
EXISTS 運算子是用來確認子查詢所傳回的結果集合中,是否存在結果的運算子。當存在的情形下則傳回真。

SOME運算子

語法
WHERE 式 比較運算子 SOME(子查詢)
範例
SELECT * FROM store WHERE class = SOME(SELECT class FROM store WHERE class='food');

說明
功能與ANY運算子相同的功能。

LIKE 運算子

語法
式 LIKE<搜尋條件>
範例
SELECT * FROM store WHERE price LIKE '4%';

說明
LIKE運算子又稱為萬用字元搜查。
萬用字元搜查顧明思義就是透過萬用字元%來進行搜尋,語法為(LIKE%xxx%)則會傳回內容包含xxx的值;如果要搜尋開頭為xxx,語法為(LIKExxx%);搜尋結尾為xxx,語法為(LIKE%xxx)。

REGEXP運算子

語法
式 REXGEXP 正規表達式
REXGEXP運算子是用來進行POSIX正規表達式的樣式比對運算子。其與LIKE相同,但是在指定樣式時可以使用正規表示式。
引數為中介字元,有以下幾種:
^ :對字串開頭進行比對
$ :對字串結尾做比對
. :對所有文字進行比對
a* :對連續0個以上的a進行比對
a+ :對連續1個以上的a進行比對
a? :對0個或1個以上的a進行比對
de|abc :對連續的de或abc進行比對
(abc)* :對連續0個以上的abc進行比對
(abc)+ :對連續1個以上的abc進行比對
(abc)- :對0個或1個以上的abc進行比對
{} :指定樣式的重複
[] :指定候選文字的集合

範例
SELECT * FROM store WHERE name REGEXP 'c+';
說明:搜尋字串有c的資料。

範例
SELECT * FROM store WHERE name REGEXP '(tooth)+';
說明:搜尋字串有tooth的資料。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料