快轉到主要內容

《SQL Basics-02》SELECT、LIKE

·934 字· loading · loading ·
目錄
SQL - 本文屬於一個選集。
§ : 本文

一些基礎常見的 SQL 語法。


查詢
#

要在資料表內查詢資料筆,則需要用到「SELECT」語法:

1SELECT `查詢欄位1`,`查詢欄位2...` FROM `資料表名稱` WHERE 查詢條件;

而查詢的欄位也可以填入「*」來表示查詢「全部欄位」:

1SELECT * FROM `資料表名稱 WHERE `查詢條件`;

至於條件… 各種寫法,常見的寫法為 比對資料值相符與否

範例 - 比對數字
#

利用上一篇文章「」中所說的語法,陸續寫入幾筆資料後,目前的資料表內容為:

idphonenameage
10123456789新之助5
2NULLAnonymous19
3NULL向日葵0
40111222333美冴29
50444555666廣志35

輸入查詢語法:

1SELECT `name`, `age` FROM `資料表名稱` WHERE `age` > 10;

Database Server 返回以下結果:

nameage
Anonymous19
美冴29
廣志35

因為 WHERE 後方所寫的查詢條件為「age」的值須大於「10」,
因此 age 小於等於 10 的資料筆將不顯示。

大於使用「>」;小於使用「<」;
等於使用「=」;不等於使用「!=」或「<>」;
大於等於使用「>=」;小於等於使用「<=」;

ps. 若不指定查詢條件,則表示查詢全部:

1SELECT `id`, `name`, `age` FROM `資料表名稱`;

Database Server 返回以下結果:

idnameage
1新之助5
2Anonymous19
3向日葵0
4美冴29
5廣志35

範例 - 比對字串
#

輸入查詢語法:

1SELECT `id`, `name` FROM `資料表名稱` WHERE `name` = "新之助";

Database Server 返回以下結果:

idname
1新之助

不等於的字串查詢:

1SELECT `id`, `name` FROM `資料表名稱` WHERE `name` != "Anonymous";

Database Server 返回以下結果:

idname
1新之助
3向日葵
4美冴
5廣志

範例 - 模糊比對
#

當有時候我們不確定目標欄位的時,我們可以用部份特徵來比對。
要模糊查詢則是使用「LIKE」語法:

1SELECT * FROM `資料表名稱` WHERE `phone` LIKE "01%";

Database Server 返回以下結果:

idphonenameage
10123456789新之助5
40111222333美冴29

百分號「%」表示任意字元比對 0 次或 0 次以上
該語法的意思是,查詢 phone 的值為 01 開頭 的資料筆。
所以假設「蘋果%」可以配對「蘋果」、「蘋果汁」、「蘋果派不好吃」,但能配對「青蘋果」,因為「青蘋果」開頭並非是「蘋果」,若要配對它,則可以寫成「%蘋果%」。

如果輸入以下語法:

1SELECT * FROM `資料表名稱` WHERE `age` LIKE "_9";

Database Server 返回以下結果:

idphonenameage
2NULLAnonymous19
40111222333美冴29

底線「_」表示任意字元比對 1 次。
該語法表示,查詢 age 欄位「第二字為 9」的結果。
所以「_9」可以配對「39」、「59」但不能配對「22」、「9」,當然也不能配對「193」,如果要配對「193」則須寫做「_9_」或者「_9%」。

Alpaca
作者
Alpaca
No one can stop my feet.
SQL - 本文屬於一個選集。
§ : 本文

相關文章