目錄匯總: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
表示沒有值。
請參閱
(完)