Ich habe diese Frage heute in der SQL-Schulungsfragendatenbank gesehen. Dies ist eine sehr repräsentative Frage zur Änderung mehrerer Tabellen. Tatsächlich ist es nicht schwierig, diese Frage zu lösen. Sowohl in MySQL als auch in Oracle gibt es viele Lösungen. Als Nächstes werde ich diese Lösungen zusammenfassen. Änderung mehrerer Tabellen in msyqlWir möchten die häufig verwendeten Anweisungen zur Änderung mehrerer Tabellen in MySQL anhand von Beispielen erläutern. //Tabelle erstellen create table aaa(id int,value1 int(5),value2 int(5),value3 int(5),value4 int(5)); Erstellen Sie die Tabelle bbb wie aaa; //In aaa-Werte einfügen (1,0,0,0,0), (2,0,0,0,0), (3,0,0,0,0), (4,0,0,0,0), (5,0,0,0,0), (6,0,0,0,0), (7,0,0,0,0); in bbb-Werte einfügen (1,11,12,13,14), (3,31,32,33,34), (5,51,52,53,54); //Sicherung erstellt Tabelle a1, wähle * von aaa; Tabelle b1 erstellen, auswählen * aus bbb; Allgemeine Modifikation mehrerer Tabellen: (gilt sowohl für MySQL als auch für Oracle, Oracle wird weiter unten erläutert) //Allgemeine Änderung mehrerer Tabellen, Update a1, Setze a1.value1 = (select b1.value1 from b1 where a1.id = b1.id), a1.value2 = (wählen Sie b1.value2 aus b1, wobei a1.id = b1.id); Änderung der Tabellenzuordnung mehrerer Tabellen (dies gilt nur für MySQL) //Tabellenzuordnung, Änderung mehrerer Tabellen, Update a1 Inner Join b1 auf a1.id = b1.id, Setze a1.value1 = b1.value1, a1.Wert2 = b1.Wert2,a1.Wert3 = b1.Wert3; Änderung mehrerer Tabellen in Oracle--Tabelle erstellen create table aaa(id number,value1 number,value2 number,value3 number,value4 number); Tabelle bbb erstellen (ID-Nummer, Wert1-Nummer, Wert2-Nummer, Wert3-Nummer, Wert4-Nummer); --Daten einfügen in AAA-Werte einfügen (1,0,0,0,0); in AAA-Werte einfügen (2,0,0,0,0); in AAA-Werte einfügen (3,0,0,0,0); in AAA-Werte einfügen (4,0,0,0,0); in AAA-Werte einfügen (5,0,0,0,0); in AAA-Werte einfügen (6,0,0,0,0); in AAA-Werte einfügen (7,0,0,0,0); in BBB-Werte einfügen (1,11,12,13,14); in bbb-Werte einfügen (3,31,32,33,34); in bbb-Werte einfügen (5,51,52,53,54); -- Backup: Tabelle a1 erstellen als „select * from aaa“; Erstellen Sie Tabelle b1 als „Select * from bbb“. Allgemeine Mehrtabellenmodifikation: Wie die obige MySQL-Anweisung ist diese Schreibweise relativ einfach zu verstehen, aber die Effizienz ist wirklich unbefriedigend. Wenn Ihre Änderung mehrerer Tabellen nur eine Spalte ändern muss (wie bei der oberen Frage), ist diese Schreibweise in Ordnung. //Allgemeine Änderung mehrerer Tabellen, Update a1, Setze a1.value1 = (select b1.value1 from b1 where a1.id = b1.id), a1.value2 = (wählen Sie b1.value2 aus b1, wobei a1.id = b1.id); Dies ist jedoch bei Änderungen mehrerer Spalten nicht sehr praktisch. Oracle bietet eine Syntax, mit der wir mehrere Tabellen ändern und hinzufügen können. Zusammenführen in Merge into ist eine Kombination aus Update- und Insert-Anweisungen, die die Funktionen Update und Insert gleichzeitig realisieren können. Ich werde es hier nicht erklären, sondern kurz die Syntax von Merge into vorstellen. in Zieltabelle a zusammenführen --- Die Zieltabelle, auf die in zeigt, ist die Tabelle, die wir aktualisieren möchten. using Quelltabelle b --- Die Tabelle, auf die using verweist, kann nicht geändert werden. Es kann sich auch um eine Ansicht, ein Ergebnissatz usw. handeln. on(a.id = b.id) --- on() enthält die Bedingungen für den Abgleich der Zieltabelle mit der Quelltabelle. Wenn die Bedingungen erfüllt sind, ist der Abgleich erfolgreich. bei Übereinstimmung dann --- bei Übereinstimmung folgt eine Änderungsanweisung. Aktualisierungssatz ... wenn keine Übereinstimmung vorliegt, dann --- wenn keine Übereinstimmung vorliegt, folgt eine neue Anweisung. Werte einfügen(....); mit b1 in a1 zusammenführen auf (a1.id = b1.id) bei Übereinstimmung dann aktualisieren setze a1.Wert1 = b1.Wert1,a1.Wert2 = b1.Wert2,a1.Wert3 = b1.Wert3; existiert Multi-Table-Modifikation EXISTS gilt auch für MySQL und Oracle. Wenn keine zwingende Anforderung besteht, Tabelle A basierend auf den Daten in Tabelle B zu ändern, ist auch die Verwendung von EXISTS zulässig. Die SQL-Ausführungsreihenfolge nach der Verwendung von exists besteht darin, zuerst die äußere Abfrage und dann die innere Abfrage auszuführen, sodass der Wert der Tabelle a1 bei der Änderung mehrerer Tabellen nicht in den Wert der Tabelle a2 geändert werden kann. Aktualisiere a1, setze a1.value1 = 99,a1.value2 = 999,a1.value3 = 999 wobei existiert (wähle Wert1 aus b1, wobei a1.id = b1.id); Damit ist dieser Artikel über die häufig verwendeten Anweisungen zur Änderung mehrerer Tabellen in MySQL und Oracle abgeschlossen. Weitere Informationen zu den häufig verwendeten Anweisungen zur Änderung mehrerer Tabellen in MySQL und Oracle finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Docker-Reinigungskiller/Docker-Overlay-Datei nimmt zu viel Speicherplatz ein
>>: Grundlagen und Beispiele zur TypeScript-Aufzählung
Unter Linux können die Befehle cat, more und less...
Inhaltsverzeichnis 1. Einleitung 2. Passen Sie de...
In diesem Artikel wird der spezifische Code für J...
Vorwort Das Docker-Image kann nicht gelöscht werd...
Das Befehlsmuster ist ein Verhaltensentwurfsmuste...
Inhaltsverzeichnis Schriftarten mit font-face ric...
FEHLER 1290 (HY000) : Der MySQL-Server wird mit d...
Inhaltsverzeichnis Erstellen Sie ein Vue + TS-Pro...
Die Entwicklung der Docker-Technologie bietet ein...
Flex-Grundkonzepte Flex-Layout (Flex ist die Abkü...
bei um + Zeit um 17:23 at> touch /mnt/file{1.....
Vorwort: Ich habe oft von Datenbankparadigmen geh...
Nun, vielleicht sind Sie ein Design-Guru, oder vie...
Installieren von MySQL 5.7 aus TAR.GZ auf Mac OS ...
Heute lernen wir, wie man mit CSS eine coole Bild...