一些基礎常見的 SQL 語法。
示範的資料#
目前資料表內有以下資料:
| id | phone | name | age |
|---|---|---|---|
| 1 | 0123456789 | 新之助 | 5 |
| 2 | NULL | Anonymous | 19 |
| 3 | NULL | 向日葵 | 0 |
| 4 | 0111222333 | 美冴 | 29 |
| 5 | 0444555666 | 廣志 | 35 |
如果可以的話也試著一起做做看。
修改#
修改資料筆#
修改資料筆需要使用「UPDATE」語法:
1UPDATE `資料表名稱`
2SET `欄位1` = 欄位1新的值, `欄位2` = 欄位2新的值...
3WHERE 修改條件;
範例 - 修改資料筆#
輸入語法:
1UPDATE `資料表名稱`
2SET `name` = "小白", `age` = 0
3WHERE `name` LIKE '%onym%';
原資料:
| id | phone | name | age |
|---|---|---|---|
| 2 | NULL | Anonymous | 19 |
被更改為:
| id | phone | name | age |
|---|---|---|---|
| 2 | NULL | 小白 | 0 |
條件「`name` LIKE '%onym%'」表示模糊查詢 name 欄位「含有 "onym"」的資料筆。
ps. 若沒有寫 WHERE 條件,則會更改所有資料。
所有資料的欄位 name 會變「小白」,欄位 age 會變「0」…
修改欄位#
新增欄位#
1ALTER TABLE `資料表名稱` ADD COLUMN `欄位名稱` 資料型態(長度) 屬性1 屬性2...;
範例 - 新增欄位#
1ALTER TABLE `資料表名稱` ADD COLUMN `jp_name` varchar(20) NULL;
資料表欄位多出「jp_name」:
| id | phone | name | age | jp_name |
|---|---|---|---|---|
| 1 | 0123456789 | 新之助 | 5 | NULL |
| 2 | NULL | 小白 | 0 | NULL |
| 3 | NULL | 向日葵 | 0 | NULL |
| 4 | 0111222333 | 美冴 | 29 | NULL |
| 5 | 0444555666 | 廣志 | 35 | NULL |
修改欄位#
1ALTER TABLE `資料表名稱` CHANGE COLUMN `舊欄位名稱`
2`新欄位名稱` 新資料形態(長度) 屬性1 屬性2...;
範例 - 修改欄位#
1ALTER TABLE `資料表名稱` CHANGE COLUMN `phone`
2`phone` varchar(11) NULL;
則資料欄位 phone 由型態「char(10)」更改至「varchar(11)」。
刪除欄位#
1ALTER TABLE `資料表名稱` DROP COLUMN `欄位名稱`;
範例 - 刪除欄位#
1ALTER TABLE `資料表名稱` DROP COLUMN `age`;
欄位「age」被刪除了:
| id | phone | name | jp_name |
|---|---|---|---|
| 1 | 0123456789 | 新之助 | NULL |
| 2 | NULL | 小白 | NULL |
| 3 | NULL | 向日葵 | NULL |
| 4 | 0111222333 | 美冴 | NULL |
| 5 | 0444555666 | 廣志 | NULL |
刪除#
刪除資料筆#
刪除資料筆使用的語法為「DELETE」:
1DELETE FROM `資料表名稱` WHERE 刪除條件
範例 - 刪除資料筆#
1DELETE FROM `資料表名稱` WHERE `phone` IS NULL
ps. 「IS NULL」這個寫法表示比對值為 NULL (空值),等同於「`phone` = ""」。
原資料為:
| id | phone | name | jp_name |
|---|---|---|---|
| 1 | 0123456789 | 新之助 | NULL |
| 2 | NULL | 小白 | NULL |
| 3 | NULL | 向日葵 | NULL |
| 4 | 0111222333 | 美冴 | NULL |
| 5 | 0444555666 | 廣志 | NULL |
刪除後:
| id | phone | name | jp_name |
|---|---|---|---|
| 1 | 0123456789 | 新之助 | NULL |
| 4 | 0111222333 | 美冴 | NULL |
| 5 | 0444555666 | 廣志 | NULL |
當然,如同 UPDATE 語法一樣,沒有指定 WHERE 刪除條件,則會刪除全部!
刪除資料表#
刪除資料表使用的是「DROP」語法:
1DROP TABLE `資料表名稱`;
刪除資料庫#
刪除資料庫一樣使用「DROP」語法:
1DROP DATABASE `資料庫名稱`;