翻譯|使用教程|編輯:秦林|2022-11-28 13:51:16.493|閱讀 872 次
概述:如何在Navicat 16版本實現一條語句更新多個表,小編通過本文給大家具體介紹,歡迎下載最新版試用體驗。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
眾所周知,多個服務器命中會減慢應用程序的速度。出于這個原因,開發人員致力于找尋使用最少的語句更新數據的最有效方法。事實證明,SQL UPDATE 語句確實支持使用以下語法設置多個表的字段:
UPDATE table1, table2, ... SET column1 = value1, column2 = value2, ... [WHERE conditions]
語法是由組合兩個或多個表的各種關鍵字組成,例如 join 關鍵字。
今天的文章將概述多表 UPDATE 語句,以及使用 MySQL 8 和 Navicat Premium 16 作為示例。
將兩個表更新合并為一條語句并非沒有限制和準則。請記住以下幾點:
在多表 UPDATE 查詢中,每條滿足條件的記錄都會被更新。即使記錄多次匹配條件,該行也只會更新一次。
更新多個表的語法不能與 ORDER BY 和LIMIT 關鍵字一起使用。
因此,雖然多表 UPDATE 語句非常有效,但它并不適用于所有情況。
為了嘗試使用多表 UPDATE 語句,我們將創建兩個名為“library”和“book”的表,并設想一下從圖書館借了一本或多本書。這樣做會同時增加和減少圖書的數量。事實證明,這是將兩個單獨的語句合并為一個 UPDATE 查詢的理想方案。這可以避免對服務器的單獨調用,令操作更有效率。
以下是每個表的定義和內容:
library 表
book 表
UPDATE library l, book b SET l.book_count = l.book_count - 2, b.book_count = b.book_count + 2 WHERE l.id = b.book_id AND b.id = '1AG';
在上面的查詢中,l.id = b.book_id 條件充當一個內部聯接,將兩個表結合在一起,并在檢查表約束后對組合表進行操作。同時,b.id = '1AG' 條件進一步將目標行減少為與用戶 '1AG' 相關的行。
我們也可以使用其他聯接類型,如外部聯接和右外聯接;唯一的弱點是分組的兩個表必須具有相似或匹配的屬性。
與常規(單個表)UPDATE 語句一樣,SET 關鍵字與 UPDATE 關鍵字會一起用于在現有行中設置新值。舊值會被新數據覆蓋。我們可以在下面的 Navicat 中查看查詢結果:
正如預期的那樣,用戶 '1AG' 和圖書 103 的計數已在兩個表中更新:
今天的文章概述了多表 UPDATE 語句,以及使用 MySQL 8 和 Navicat Premium 16 作為示例。我們學習到多表 UPDATE 語句最適合對相關表列應用數學運算,例如遞增和遞減。
Navicat Premium是一個可連接多種數據庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL等數據庫,讓管理不同類型的數據庫更加的方便。慧都2022年終狂歡活動火熱進行中,全場產品超低價來襲,Navicat系列產品最高直降600元,了解更多活動詳情,請咨詢。
數據庫管理工具交流群:7645665608 歡迎進群交流討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn