Zusammenfassung häufig verwendeter Anweisungen zur Änderung mehrerer Tabellen in MySQL und Oracle

Zusammenfassung häufig verwendeter Anweisungen zur Änderung mehrerer Tabellen in MySQL und Oracle

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 msyql

Wir 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:
  • Beschreibung der Standardtransaktionsisolationsebene von MySQL und Oracle
  • Eine kurze Diskussion über die Unterschiede zwischen den drei wichtigsten Datenbanken: Mysql, SqlServer und Oracle
  • Detaillierte Erläuterung der Paging-Abfragemethoden in MySQL, MSSQL und Oracle
  • SQL zur Implementierung der Wiederherstellung einer Zeitreihenversetzung

<<:  Docker-Reinigungskiller/Docker-Overlay-Datei nimmt zu viel Speicherplatz ein

>>:  Grundlagen und Beispiele zur TypeScript-Aufzählung

Artikel empfehlen

Verwenden Sie die Befehle more, less und cat in Linux, um Dateiinhalte anzuzeigen

Unter Linux können die Befehle cat, more und less...

WeChat-Applet: benutzerdefinierter TabBar-Schrittdatensatz

Inhaltsverzeichnis 1. Einleitung 2. Passen Sie de...

JavaScript implementiert den Div-Maus-Drag-Effekt

In diesem Artikel wird der spezifische Code für J...

JavaScript-Entwurfsmuster, Befehlsmuster

Das Befehlsmuster ist ein Verhaltensentwurfsmuste...

Richtige Methode zum Laden von Schriftarten in Vue.js

Inhaltsverzeichnis Schriftarten mit font-face ric...

Vue3+Skript-Setup+ts+Vite+Volar-Projekt

Inhaltsverzeichnis Erstellen Sie ein Vue + TS-Pro...

So stellen Sie Spring Boot mit Docker bereit

Die Entwicklung der Docker-Technologie bietet ein...

Neues CSS3-Layout: ausführliche Flex-Erklärung

Flex-Grundkonzepte Flex-Layout (Flex ist die Abkü...

Detaillierte Erklärung des MySQL-Datenbankparadigmas

Vorwort: Ich habe oft von Datenbankparadigmen geh...

Sieben Prinzipien eines guten Designers (1): Schriftdesign

Nun, vielleicht sind Sie ein Design-Guru, oder vie...

CSS3 erzielt einen coolen Karusselleffekt mit geschnittenen Bildern

Heute lernen wir, wie man mit CSS eine coole Bild...