1. MySQL UPDATE語句簡介
我們使用update語句來更新表中的現有數據。也可以使用update語句來更改表中單個行,一組行或所有行的列值。
下面說明了mysql update語句的語法:
update [low_priority] [ignore] table_name
set
column_name1 = expr1,
column_name2 = expr2,
...
where
condition;
在上面update語句中:
首先,在update關鍵字后面指定要更新數據的表名。
其次,set子句指定要修改的列和新值。要更新多個列,請使用以逗號分隔的列表。以字面值,表達式或子查詢的形式在每列的賦值中來提供要設置的值。
第三,使用where子句中的條件指定要更新的行。where子句是可選的。 如果省略where子句,則update語句將更新表中的所有行。
請注意,where子句非常重要,所以不應該忘記指定更新的條件。 有時,您可能只想改變一行; 但是,可能會忘記寫上where子句,導致意外更新表中的所有行。
mysql在update語句中支持兩個修飾符。
low_priority修飾符指示update語句延遲更新,直到沒有從表中讀取數據的連接。 low_priority對僅使用表級鎖定的存儲引擎(例如myisam,merge,memory)生效。
即使發生錯誤,ignore修飾符也可以使update語句繼續更新行。導致錯誤(如重復鍵沖突)的行不會更新。
2. MySQL UPDATE示例
我們使用mysql示例數據庫(yiibaidb)中的一些表來練習使用update語句。
2.1 mysql update一個單列示例
在這個例子中,我們將把 mary patterson 的電子郵件更新為新的電子郵件mary.patterso@yiibai.com。
首先,為了確保更新電子郵件成功,使用以下select語句從employees表查詢mary的電子郵件:
select
firstname, lastname, email
from
employees
where
employeenumber = 1056;
執行上面的查詢語句,得到以下結果 -
+-----------+-----------+----------------------+
| firstname | lastname | email |
+-----------+-----------+----------------------+
|
Mary | Patterson | mpatterso@yiibai.com |
+-----------+-----------+----------------------+
1 row in set
第二步,使用update語句將mary的電子郵件更新為新的電子郵件:
mary.new@yiibai.com,如下查詢所示:
因為上面語句中,只想更新一行,所以使用WHERE子句來指定更新的是員工編號1056的行。SET子句將電子郵件列的值設置為新的電子郵件。
