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