人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 硬件軟件教程 > 詳細頁面

sql update語句的詳細用法

sql update語句的詳細用法

更新時間:2023-06-22 文章作者:未知 信息來源:網絡 閱讀次數:

根據運行的環境,操作系統可以分為桌面操作系統,手機操作系統,服務器操作系統,嵌入式操作系統等。

mongodb update數據語法_update語法_pl/sql update語法

UPDATE是DML(數據操作語言)語句,用于修改表中的行.

更新[LOW_PRIORITY] [IGNORE] table_reference

SET Assignment_list

[WHERE where_condition]

[ORDER BY ...]

[LIMIT row_count]

值:

{expr |默認值

update語法_pl/sql update語法_mongodb update數據語法

分配:

col_name =值

assignment_list:

任務[,任務] ...

更新[LOW_PRIORITY] [IGNORE] table_references

SET Assignment_list

[WHERE where_condition]

對于單表語法update語法,UPDATE語句使用新值更新指定表中現有行的列. SET子句指示要修改的列以及應給出的值.

update語法_mongodb update數據語法_pl/sql update語法

每個值都可以作為表達式給出,或者關鍵字DEFAULT顯式將列設置為默認值. WHERE子句(如果提供)指定了確定要更新哪些行的條件.

沒有WHERE子句,所有行都會更新. 如果ORDER BY指定子句,則將按指定順序更新行. LIMIT子句對可更新的行數設置限制.

對于多表語法,UPDATE更新每個表中名為table_references的行以滿足條件. 即使匹配條件是多次,每個匹配的行也將被更新一次. 對于多表語法,不能使用ORDER BY和LIMIT.

where_condition是一個表達式,并且每一行都更新為true.

UPDATE語句支持以下修飾符:

在MySQL 5.5.18和更高版本中,UPDATE IGNORE語句(包括帶有ORDER BY子句的語句)被標記為基于語句的不安全復制. (這是因為行的更新順序決定了忽略哪些行. )使用基于語句的模式時,這些語句在錯誤日志中生成警告,并在使用時使用基于行的格式寫入二進制日志混合模式.

如果您從表中訪問表中的UPDATE列,請使用該列的當前值. 例如,以下語句將col1設置為比當前值大一個:

更新t1設置col1 = col1 + 1;

pl/sql update語法_mongodb update數據語法_update語法

以下語句中的第二個賦值將col2設置為當前(更新的)col1值,而不是原始的col1值. 結果,col1和col2具有相同的值. 此行為不同于標準SQL.

更新t1設置col1 = col1 + 1,col2 = col1;

單表UPDATE分配通常從左到右進行評估. 對于多表更新,不能保證以任何特定順序執行分配.

如果將列設置為當前值,MySQL將注意到這一點,并且不會對其進行更新.

如果NOT NULL通過設置更新聲明的列,則啟用NULL嚴格SQL模式時將發生錯誤;否則,將列設置為列數據類型的隱式默認值,并增加警告計數. 隱式默認值為0數字類型,字符串類型為空字符串(''),日期和時間類型為“零”值.

UPDATE返回實際更改的行數. mysql_info()C API函數返回已匹配和更新的行數,以及UPDATE中出現警告的次數.

可用于限制的范圍. 子句是行匹配的限制. 一旦找到滿足該子句的行,該語句就會停止,無論它們是否實際上已更改.

如果UPDATE語句包含ORDER BY子句,則將按該子句指定的順序更新行. 這在某些情況下可能很有用update語法,否則可能會導致錯誤. 假設表t包含其ID具有唯一索引的列. 以下語句可能由于重復的鍵錯誤而失敗,具體取決于行的更新順序:

mongodb update數據語法_pl/sql update語法_update語法

UPDATE t SET id = id + 1;

例如,如果表在id列中包含1和2,并且在2更新為3之前將1更新為2,則會發生錯誤. 為避免此問題,請添加ORDER BY子句,以便在具有較小ID值的行之前更新具有較大ID值的行:

更新t SET id = id + 1 ORDER BY ID DESC;

您還可以執行UPDATE操作來覆蓋多個表. 但是,不能對多個表UPDATE使用ORDER BY或LIMIT. table_references子句列出了連接中涉及的表. 語法在第13.2.9.2節“ JOIN語法”中描述. 這是一個示例:

更新項目,每月設置項目. price= month.price

WHERE items.id = month.id;

上一個示例顯示了使用逗號運算符的內部聯接,但是多個表UPDATE語句可以使用該語句中允許的任何類型的聯接SELECT,例如LEFT JOIN.

如果您使用涉及具有外鍵約束的InnoDB表的UPDATE多表語句,則MySQL優化程序可能以與其父/子關系不同的順序處理表.

在這種情況下,該語句失敗并回滾. 而是更新一個表,并依靠ON UPDATE函數InnoDB來相應地修改其他表.

您無法更新表并從子查詢的同一表中進行選擇.

UPDATE使用的存儲引擎(例如分區表MyISAM)使用表級鎖來鎖定表中的所有分區. 對于使用存儲引擎的表(例如InnoDB使用行級鎖定),不會發生這種情況.


本文來自本站,轉載請注明本文網址:
http://www.pc-fly.com/a/jisuanjixue/article-260157-1.html



溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 淅川县| 丽江市| 炎陵县| 磐安县| 凤凰县| 新泰市| 广宗县| 绍兴县| 行唐县| 博乐市| 瑞金市| 古浪县| 巴林右旗| 聂拉木县| 集贤县| 陇川县| 五原县| 龙州县| 应用必备| 德昌县| 句容市| 连山| 石家庄市| 沁阳市| 香格里拉县| 吉安县| 万源市| 武鸣县| 南充市| 育儿| 汉沽区| 中宁县| 柏乡县| 海丰县| 茂名市| 汾西县| 紫云| 浦北县| 同德县| 新乡县| 湾仔区|