程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> SQL語句詳解 MySQL update的准確用法

SQL語句詳解 MySQL update的准確用法

編輯:MySQL綜合教程

SQL語句詳解 MySQL update的准確用法。本站提示廣大學習愛好者:(SQL語句詳解 MySQL update的准確用法)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL語句詳解 MySQL update的准確用法正文


單表的MySQL UPDATE語句:

  UPDATE [LOW_PRIORITY] [IGNORE] tbl_name 
  SET col_name1=expr1 [, col_name2=expr2 ...] 
  [WHERE where_definition] 
  [ORDER BY ...] 
  [LIMIT row_count] 


  多表的UPDATE語句:

UPDATE [LOW_PRIORITY] [IGNORE] table_references 
SET col_name1=expr1 [, col_name2=expr2 ...] 
[WHERE where_definition]

UPDATE語法可以用新值更新原有表行中的各列。SET子句指導要修正哪些列和要賜與哪些值。WHERE子句指定應更新哪些行。假如沒有WHERE子句,則更新一切的行。假如指定了ORDER BY子句,則依照被指定的次序對行停止更新。LIMIT子句用於給定一個限值,限制可以被更新的行的數量。

  MySQL UPDATE語句支撐以下潤飾符:

  假如您應用LOW_PRIORITY症結詞,則UPDATE的履行被延遲了,直到沒有其它的客戶端從表中讀取為止。

  假如您應用IGNORE症結詞,則即便在更新進程中湧現毛病,更新語句也不會中止。假如湧現了反復症結字抵觸,則這些行不會被更新。假如列被更新後,新值會招致數據轉化毛病,則這些行被更新為最接近的正當的值。

  假如您在一個表達式中經由過程tbl_name拜訪一列,則UPDATE應用列中確當前值。例如,以下語句把年紀列設置為比以後值多一:

  MySQL> UPDATE persondata SET ageage=age+1;

  MySQL UPDATE賦值被從左到右評價。例如,以下語句對年紀列加倍,然後再停止增長:

  MySQL> UPDATE persondata SET ageage=age*2, ageage=age+1;

  假如您把一列設置為其以後含有的值,則MySQL會留意到這一點,但不會更新。

  假如您把被已界說為NOT NULL的列更新為NULL,則該列被設置到與列類型對應的默許值,而且累加正告數。關於數字類型,默許值為0;關於字符串類型,默許值為空字符串('');關於日期和時光類型,默許值為“zero”值。

  UPDATE會前往現實被轉變的行的數量。MySQL_info() C API函數可以前往被婚配和被更新的行的數量,和在UPDATE進程中發生的正告的數目。

  您可使用LIMIT row_count來限制UPDATE的規模。LIMIT子句是一個與行婚配的限制。只需發明可以知足WHERE子句的row_count行,則該語句中斷,豈論這些行能否被轉變。

  假如一個UPDATE語句包含一個ORDER BY子句,則依照由子句指定的次序更新行。

  您也能夠履行包含多個表的UPDATE操作。table_references子句列出了在結合中包括的表。以下是一個例子:

  SQL>UPDATE items,month SET items.price=month.price
  WHERE items.id=month.id;

  以上的例子顯示出了應用逗號操作符的外部結合,然則multiple-table UPDATE語句可使用在SELECT語句中許可的任何類型的結合,好比LEFT JOIN。

  正文:您不克不及把ORDER BY或LIMIT與multiple-table UPDATE同時應用。

  在一個被更改的multiple-table UPDATE中,有些列被援用。您只須要這些列的MySQL UPDATE權限。有些列被讀取了,然則沒被修正。您只須要這些列的SELECT權限。

  假如您應用的multiple-table UPDATE語句中包括帶有外鍵限制的InnoDB表,則MySQL優化符處置表的次序能夠與高低層級關系的次序分歧。在此情形下,語句有效並被 回滾。同時,更新一個單一表,而且依附ON UPDATE功效。該功效由InnoDB供給,用於對其它表停止響應的修正。

  今朝,您不克不及在一個子查詢中更新一個表,同時從統一個表當選擇。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved