7)-MySQL更新表數據


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,如下查詢所示:
 
update employees
set
    email = 'mary.new@yiibai.com'
where
    employeenumber = 1056;
 
因為上面語句中,只想更新一行,所以使用WHERE子句來指定更新的是員工編號1056的行。SET子句將電子郵件列的值設置為新的電子郵件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM