第16課 更新和刪除資料
阿新 • • 發佈:2020-07-15
第16課 更新和刪除資料
16.1 更新資料
更新(修改)表中的資料,可以使用UPDATE語句。有兩種使用UPDATE的方式:
- 更新表中的特定行;
- 更新表中的所有行。
警告:不要省略WHERE子句
在使用UPDATE時一定要細心。因為稍不注意,就會更新表中的所有行。
使用UPDATE語句非常容易,甚至可以說太容易了。基本的UPDATE語句由三部分組成,分別是:
- 要更新的表;
- 列名和它們的新值;
- 確定要更新哪些行的過濾條件。
客戶1000000005現在有了電子郵件地址,因此他的記錄需要更新,語句如下:
UPDATE Customers SET cust_email = '[email protected]' WHERE cust_id = '1000000005';
更新多個列的語法稍有不同:
UPDATE Customers
SET cust_contact = 'Sam Roberts',
cust_email = '[email protected]'
WHERE cust_id = '1000000006';
在更新多個列時,只需要使用一條SET命令,每個“列=值”對之間用逗號分隔(最後一列之後不用逗號)。
要刪除某個列的值,可設定它為NULL(假如表定義允許NULL值)。
UPDATE Customers
SET cust_email = NULL
WHERE cust_id = '1000000005';
16.2 刪除資料
有兩種使用DELETE的方式:
- 從表中刪除特定的行;
- 從表中刪除所有行。
警告:不要省略WHERE子句
在使用DELETE時一定要細心。因為稍不注意,就會錯誤地刪除表中所有行。
下面的語句從Customers表中刪除一行:
DELETE FROM Customers
WHERE cust_id = '1000000006';
DELETE不需要列名或萬用字元。DELETE刪除整行而不是刪除列。要刪除指定的列,請使用UPDATE語句。
說明:刪除表的內容而不是表
DELETE語句從表中刪除行,甚至是刪除表中所有行。但是,DELETE不刪除表本身。
提示:更快的刪除
如果想從表中刪除所有行,不要使用DELETE。可使用TRUNCATE TABLE語句,它完成相同的工作,而速度更快(因為不記錄資料的變動)。
16.3 更新和刪除的指導原則
下面是許多SQL程式設計師使用UPDATE或DELETE時所遵循的重要原則。
- 除非確實打算更新和刪除每一行,否則絕對不要使用不帶WHERE子句的UPDATE或DELETE語句。
- 在UPDATE或DELETE語句使用WHERE子句前,應該先用SELECT進行測試,保證它過濾的是正確的記錄,以防編寫的WHERE子句不正確。
若是SQL沒有撤銷(undo)按鈕,應該非常小心地使用UPDATE和DELETE,否則你會發現自己更新或刪除了錯誤的資料。
16.4 小結
這一課講述瞭如何使用UPDATE和DELETE語句處理表中的資料。