一些基礎常見的 SQL 語法。
查詢#
要在資料表內查詢資料筆,則需要用到「SELECT
」語法:
1SELECT `查詢欄位1`,`查詢欄位2...` FROM `資料表名稱` WHERE 查詢條件;
而查詢的欄位也可以填入「*
」來表示查詢「全部欄位
」:
1SELECT * FROM `資料表名稱 WHERE `查詢條件`;
至於條件… 各種寫法,常見的寫法為 比對資料值相符與否
。
範例 - 比對數字#
利用上一篇文章「」中所說的語法,陸續寫入幾筆資料後,目前的資料表內容為:
id | phone | name | age |
---|---|---|---|
1 | 0123456789 | 新之助 | 5 |
2 | NULL | Anonymous | 19 |
3 | NULL | 向日葵 | 0 |
4 | 0111222333 | 美冴 | 29 |
5 | 0444555666 | 廣志 | 35 |
輸入查詢語法:
1SELECT `id`, `name`, `age` FROM `資料表名稱` WHERE `age` > 10;
Database Server 返回以下結果:
name | age |
---|---|
Anonymous | 19 |
美冴 | 29 |
廣志 | 35 |
因為 WHERE
後方所寫的查詢條件為「age
」的值須大於
「10」,
因此 age
小於等於 10 的資料筆將不顯示。
大於
使用「>
」;小於
使用「<
」;等於
使用「=
」;不等於
使用「!=
」或「<>
」;大於等於
使用「>=
」;小於等於
使用「<=
」;
ps. 若不指定查詢條件,則表示查詢全部:
1SELECT `id`, `name`, `age` FROM `資料表名稱`;
Database Server 返回以下結果:
id | name | age |
---|---|---|
1 | 新之助 | 5 |
2 | Anonymous | 19 |
3 | 向日葵 | 0 |
4 | 美冴 | 29 |
5 | 廣志 | 35 |
範例 - 比對字串#
輸入查詢語法:
1SELECT `id`, `name` FROM `資料表名稱` WHERE `name` = "新之助";
Database Server 返回以下結果:
id | name |
---|---|
1 | 新之助 |
不等於的字串查詢:
1SELECT `id`, `name` FROM `資料表名稱` WHERE `name` != "Anonymous";
Database Server 返回以下結果:
id | name |
---|---|
1 | 新之助 |
3 | 向日葵 |
4 | 美冴 |
5 | 廣志 |
範例 - 模糊比對#
當有時候我們不確定目標欄位的值時,我們可以用部份特徵來比對。
要模糊查詢則是使用「LIKE
」語法:
1SELECT * FROM `資料表名稱` WHERE `phone` LIKE "01%";
Database Server 返回以下結果:
id | phone | name | age |
---|---|---|---|
1 | 0123456789 | 新之助 | 5 |
4 | 0111222333 | 美冴 | 29 |
百分號「%
」表示任意字元比對 0
次或 0 次以上
。
該語法的意思是,查詢 phone
的值為 01 開頭
的資料筆。
所以假設「蘋果%
」可以配對「蘋果
」、「蘋果汁
」、「蘋果派不好吃
」,但不
能配對「青蘋果
」,因為「青蘋果
」開頭並非是「蘋果
」,若要配對它,則可以寫成「%蘋果%
」。
如果輸入以下語法:
1SELECT * FROM `資料表名稱` WHERE `age` LIKE "_9";
Database Server 返回以下結果:
id | phone | name | age |
---|---|---|---|
2 | NULL | Anonymous | 19 |
4 | 0111222333 | 美冴 | 29 |
底線「_
」表示任意字元比對 1
次。
該語法表示,查詢 age
欄位「第二字為 9
」的結果。
所以「_9
」可以配對「39
」、「59
」但不能配對「22
」、「9
」,當然也不能配對「193
」,如果要配對「193
」則須寫做「_9_
」或者「_9%
」。