目錄匯總:SQL 零基礎入門教程
更新(修改)表中的數據,可以使用 UPDATE 語句。有兩種使用 UPDATE 的方式:
- 更新表中的特定行;
- 更新表中的所有行。
下面分別介紹。
注意:不要省略 WHERE 子句
在使用
UPDATE時一定要細心。因為稍不注意,就會更新表中的所有行。使用這條語句前,請完整地閱讀本文。
提示:
UPDATE與安全在客戶端/服務器的 DBMS 中,使用
UPDATE語句可能需要特殊的安全權限。在你使用UPDATE前,應該保證自己有足夠的安全權限。
使用 UPDATE 語句非常容易,甚至可以說太容易了。基本的 UPDATE 語句由三部分組成,分別是:
- 要更新的表;
- 列名和它們的新值;
- 確定要更新哪些行的過濾條件。
舉一個簡單例子。客戶 1000000005 現在有了電子郵件地址,因此他的記錄需要更新,語句如下:
輸入▼
UPDATE Customers
SET cust_email = 'kim@thetoystore.com'
WHERE cust_id = 1000000005;
UPDATE 語句總是以要更新的表名開始。在這個例子中,要更新的表名為 Customers。SET 命令用來將新值賦給被更新的列。在這里,SET 子句設置 cust_email 列為指定的值:
SET cust_email = 'kim@thetoystore.com'
UPDATE 語句以 WHERE 子句 結束,它告訴 DBMS 更新哪一行。沒有 WHERE 子句,DBMS 將會用這個電子郵件地址更新 Customers 表中的所有行,這不是我們希望的。
更新多個列的語法稍有不同:
輸入▼
UPDATE Customers
SET cust_contact = 'Sam Roberts',
cust_email = 'sam@toyland.com'
WHERE cust_id = 1000000006;
在更新多個列時,只需要使用一條 SET 命令,每個“列=值”對之間用逗號分隔(最后一列之后不用逗號)。在此例子中,更新顧客 1000000006 的 cust_contact 和 cust_email 列。
提示:在
UPDATE語句中使用子查詢
UPDATE語句中可以使用子查詢,使得能用 SELECT 語句 檢索出的數據更新列數據。關於子查詢及使用的更多內容,請參閱 子查詢。
提示:
FROM關鍵字有的 SQL 實現支持在
UPDATE語句中使用FROM子句,用一個表的數據更新另一個表的行。如想知道你的 DBMS 是否支持這個特性,請參閱它的文檔。
要 刪除 某個列的值,可設置它為 NULL(假如表定義允許 NULL 值)。如下進行:
輸入▼
UPDATE Customers
SET cust_email = NULL
WHERE cust_id = 1000000005;
其中 NULL 用來去除 cust_email 列中的值。這與保存空字符串很不同(空字符串用''表示,是一個值),而 NULL 表示沒有值。
請參閱
(完)
