在mysql中,可以利用UPDATE語句來修改欄位的值,UPDATE語句可以修改資料表中單一行、一組行或所有行的欄位值;語法「UPDATE 表名SET 欄位1=值1[,字段2=值2…] [WHERE 條件]」。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
在mysql中,可以利用UPDATE語句來修改欄位的值。
UPDATE語句可以更新表中的現有數據,可以修改資料表中單一行、一組行或所有行的欄位值。
下面說明了MySQL UPDATE
語句的語法:
UPDATE 表名 SET 字段1=值1[,字段2=值2…] [WHERE 条件]
在上面UPDATE
語句中:
UPDATE
關鍵字後面指定要更新資料的表名。 SET
子句指定要修改的欄位和新值。若要更新多個列,請使用以逗號分隔的清單。以字面值,表達式或子查詢的形式在每列的賦值中來提供要設定的值。 WHERE
子句是可選的。如果省略WHERE
子句,則UPDATE
語句將更新表格中的所有行。 請注意,WHERE
子句非常重要,所以不應該忘記指定更新的條件。有時,您可能只想改變一行; 但是,可能會忘記寫上WHERE
子句,導致意外更新表中的所有行。
MySQL在UPDATE
語句中支援兩個修飾符。
LOW_PRIORITY
修飾符指示UPDATE
語句延遲更新,直到沒有從表中讀取資料的連線。 LOW_PRIORITY
對僅使用表格層級鎖定的儲存引擎(例如MyISAM,MERGE,MEMORY
##都。
即使發生錯誤,IGNORE修飾符也可以讓UPDATE
語句繼續更新行。導致錯誤(如重複鍵衝突)的行不會更新。
我們使用MySQL範例資料庫中的一些表格來練習使用UPDATE
語句。2.1 MySQL UPDATE一個單列範例
Mary Patterson 的電子郵件更新為新的電子郵件
123@qq.com
首先,為了確保更新電子郵件成功,使用以下SELECT語句從employees
表查詢Mary的電子郵件:
SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;
執行上面的查詢語句,得到以下結果-
+-----------+-----------+----------------------+ | firstname | lastname | email | +-----------+-----------+----------------------+ | Mary | Patterson | mpatterso@qq.com | +-----------+-----------+----------------------+ 1 row in set
第二步驟,使用
UPDATE語句將
Mary的電子郵件更新為新的電子郵件:
123@qq.com
UPDATE employees SET email = '123@qq.com' WHERE employeeNumber = 1056;因為上面語句中,只想更新一行,所以使用
WHERE子句來指定更新的是員工編號
1056的行。
SET子句將電子郵件列的值設定為新的電子郵件。
第三
,再次執行SELECT
語句來驗證變更。
SELECT firstname, lastname, email FROM employees WHERE employeeNumber = 1056;
再次執行上面的查詢語句,得到以下結果-<pre class="brush:html;toolbar:false;">+-----------+-----------+---------------------+
| firstname | lastname | email |
+-----------+-----------+---------------------+
| Mary | Patterson | 123@qq.com |
+-----------+-----------+---------------------+
1 row in set</pre>
2.2 MySQL UPDATE多列
要更新多列中的值,需要在
SET
子句中指定分配。例如,以下語句更新了員工編號
的姓氏和電子郵件列:<pre class="brush:html;toolbar:false;">UPDATE employees
SET
lastname = &#39;Hill&#39;,
email = &#39;mary.hill@qq.com&#39;
WHERE
employeeNumber = 1056;</pre>
在執行上面語句之後,查詢員工編號為:
mysql> SELECT customername, salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL; +--------------------------------+------------------------+ | customername | salesRepEmployeeNumber | +--------------------------------+------------------------+ | Havel & Zbyszek Co | NULL | | Porto Imports Co. | NULL | | Asian Shopping Network, Co | NULL | | Natrlich Autos | NULL | | ANG Resellers | NULL | | Messner Shopping Network | NULL | | Franken Gifts, Co | NULL | | BG&E Collectables | NULL | | Schuyler Imports | NULL | | Der Hund Imports | NULL | | Cramer Spezialitten, Ltd | NULL | | Asian Treasures, Inc. | NULL | | SAR Distributors, Co | NULL | | Kommission Auto | NULL | | Lisboa Souveniers, Inc | NULL | | Stuttgart Collectable Exchange | NULL | | Feuer Online Stores, Inc | NULL | | Warburg Exchange | NULL | | Anton Designs, Ltd. | NULL | | Mit Vergngen & Co. | NULL | | Kremlin Collectables, Co. | NULL | | Raanan Stores, Inc | NULL | +--------------------------------+------------------------+ 22 rows in set###我們可以提供銷售代表和更新這些客戶。 ######為此,需要從###employees###表中隨機選擇一個職位為###Sales Rep###的僱員,並將其更新到###employees###表中。 ###下面的查詢語句是從###employees###表中隨機選擇一個其職位是###Sales Rep###的員工。 ###
SELECT employeeNumber FROM employees WHERE jobtitle = 'Sales Rep' ORDER BY RAND() LIMIT 1;###要更新###customers###表中的銷售代表員工編號(###employeeNumber###)列,我們將上面的查詢放在###UPDATE###語句的###SET###子句中,如下所示:###
UPDATE customers SET salesRepEmployeeNumber = (SELECT employeeNumber FROM employees WHERE jobtitle = 'Sales Rep' LIMIT 1) WHERE salesRepEmployeeNumber IS NULL;###如果在執行上面更新語句後,查詢###customers###表中的數據,將看到每個客戶都有一個銷售代表。換句話說,以下查詢不傳回任何行資料。 ###
SELECT salesRepEmployeeNumber FROM customers WHERE salesRepEmployeeNumber IS NULL; `###【相關推薦:###mysql影片教學###】###
以上是mysql怎麼修改字段的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!