1. 程式人生 > 實用技巧 >第16課 更新和刪除資料

第16課 更新和刪除資料

第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語句處理表中的資料。