Heim > Datenbank > Oracle > Was ist die Verwendung von „merge into' in Oracle?

Was ist die Verwendung von „merge into' in Oracle?

WBOY
Freigeben: 2022-03-02 13:47:24
Original
22808 Leute haben es durchsucht

In Oracle wird „Zusammenführen in“ zum Aktualisieren von Daten in einer Tabelle verwendet. Wenn sich die Daten bereits in der eingefügten Tabelle befinden, werden die Daten aktualisiert Daten werden aktualisiert. Neue Daten werden zur eingefügten Tabelle hinzugefügt.

Was ist die Verwendung von „merge into' in Oracle?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.

Was ist die Verwendung von Merge in Oracle?

Oracle9g hat den MERGE-Befehl eingeführt. Sie können Einfügungen und Aktualisierungsvorgänge für eine Tabelle gleichzeitig in einer SQL-Anweisung ausführen zum Aktualisieren oder Aktualisieren. In Oracle 10g gibt es die folgenden Verbesserungen:

1 Die UPDATE- und INSERT-Klauseln können mit einer WHERE-Klausel hinzugefügt werden

3. Das konstante Filterprädikat wird in der ON-Bedingung verwendet, um alle Zeilen in die Zieltabelle einzufügen. Es ist nicht erforderlich, die Quelltabelle und die Zieltabelle zu verbinden. 4. Der UPDATE-Klausel kann eine DELETE-Klausel zum Entfernen folgen 5. Quelle Die Tabelle ist die Tabelle, die auf das Schlüsselwort using folgt, und die Zieltabelle ist die Tabelle, in die zusammengeführt wird. 6. Alle Aktualisierungen, Einfügungen und Löschungen werden in der Zieltabelle durchgeführt. Da „Merge into“ die Tabelle für den Betrieb bereits formuliert hat, muss beim Aktualisieren, Einfügen und Löschen der Tabellenname nicht angezeigt werden

7 Kurz gesagt, die Funktion von „Merge into“ besteht darin, das Problem der Verwendung von Tabelle B und neuer Tabelle A zu lösen Wenn in Tabelle A keine Daten vorhanden sind, fügen Sie die Daten aus Tabelle B in Tabelle A ein oder fügen Sie Daten in eine Tabelle ein. Wenn die Tabelle bereits Daten enthält, aktualisieren Sie sie, andernfalls fügen Sie neue Daten hinzu.

Syntax:

MERGE INTO [your table-name] [rename your table here]  
  USING ( [write your query here] )[rename your query-sql and using just like a table]  
  ON ([conditional expression here] AND [...]...)  
  WHEN MATHED THEN [here you can execute some update sql or something else ]  
  WHEN NOT MATHED THEN [execute something else here ! ]
Nach dem Login kopieren

Als nächstes testen wir es direkt:

Anforderung 1: Fügen Sie ein Datenelement in eine Tabelle ein. Wenn die Daten bereits in der Tabelle vorhanden sind, aktualisieren Sie sie.

Erstellen Sie zunächst eine Tabelle TEST_ONE

create table TEST_ONE(
  ID   NUMBER not null
    primary key,
  NAME VARCHAR2(255),
  IP   VARCHAR2(255),
  MEMO VARCHAR2(255))commit;
Nach dem Login kopieren

Fügen Sie einfach ein paar Daten als Testdaten hinzu

INSERT INTO TEST_ONE (ID, NAME, IP, MEMO) VALUES (1, '2', '3', '周文军');
INSERT INTO TEST_ONE (ID, NAME, IP, MEMO) VALUES (2, '66', '366', '2656');
INSERT INTO TEST_ONE (ID, NAME, IP, MEMO) VALUES (3, '5656', '626', '2626');
INSERT INTO TEST_ONE (ID, NAME, IP, MEMO) VALUES (4, '5656', '2626', '626');
Nach dem Login kopieren
Okay, unsere Datentabelle wurde wie unten gezeigt erstellt:

Wenn wir ein neues Datenelement hinzufügen müssen, machen wir das normalerweise so

INSERT INTO TEST_ONE (ID, NAME, IP, MEMO) VALUES (5, 'mrhu', '127.0.0.1.0', '王先生的IP');
Nach dem Login kopieren

Aber wir hoffen, dass wir zuerst die ID verwenden können. Machen Sie ein Urteil, es gibt keine neuen Daten, aber die Daten werden aktualisiert. Wie kann dies erreicht werden?

Dann ist der Befehl zum Zusammenführen hier, geben Sie einfach den Code ein:

merge into TEST_ONE mtb using (select '5' as id, 'mrhu' as name,'127.0.0.1.0' as ip,'王先生的IP' as memo from dual)mmb on (mtb.id = mmb.id)when matched THENupdate set mtb.name = mmb.name,mtb.ip = mmb.ip,mtb.memo=mmb.memo
when not matched theninsert (mtb.id, mtb.name,mtb.ip,mtb.memo) VALUES(mmb.id,mmb.name,mmb.ip,mmb.memo);
Nach dem Login kopieren

Führen Sie ihn wie folgt aus:
Was ist die Verwendung von „merge into in Oracle?
Schauen wir uns noch einmal die Daten in der Tabelle an:

Die Daten wurden erfolgreich hinzugefügt!

Wie testen wir Updates? Es ist ganz einfach. Wir ändern zum Testen „Memo = „IP von Herrn Wang““ in „IP dieses schönen Mädchens“: „Der Vorgang ist wie folgt:“ Schauen wir uns die Daten in der Tabelle noch einmal an: „


Die Daten wurden erfolgreich aktualisiert La! Was ist die Verwendung von „merge into in Oracle?
Anforderung 2: Fügen Sie die Daten in Tabelle A zu Tabelle B hinzu. Es ist erforderlich, anhand des Primärschlüssels zu beurteilen, ob die Daten enthalten sind. Andernfalls fügen Sie
Was ist die Verwendung von „merge into in Oracle?Wir erstellen eine weitere Tabelle TEST_TWO als Tabelle B und TEST_ONE als hinzu Tabelle A.

merge into TEST_ONE mtb using (select '5' as id, 'mrhu' as name,'127.0.0.1.0' as ip,'本大美女的IP' as memo from dual)mmb on (mtb.id = mmb.id)when matched THENupdate set mtb.name = mmb.name,mtb.ip = mmb.ip,mtb.memo=mmb.memo
when not matched theninsert (mtb.id, mtb.name,mtb.ip,mtb.memo) VALUES(mmb.id,mmb.name,mmb.ip,mmb.memo);
Nach dem Login kopieren
Okay, die Tabelle TEST_TWO ist erstellt, fügen wir zuerst ein Datenelement hinzu!

create table tes(
  ID   NUMBER not null
    primary key,
  CODE VARCHAR2(255),
  MEMO VARCHAR2(255));commit;
Nach dem Login kopieren
Sehen wir uns die Daten in TEST_TWO noch einmal an:


Was ist die Verwendung von „merge into in Oracle? Importieren wir die Daten in TEST_ONE in unsere neu erstellte Tabelle. Durch die Analyse haben wir festgestellt, dass es in der Tabelle TEST_TWO ein Datenelement mit der ID gibt 5. In TEST_ONE gibt es auch ein Datenelement mit der ID 5. Der erwartete Ausführungseffekt besteht darin, dass der Memofeldwert der Daten mit TEST_TWOID 5 auf die „IP dieser schönen Frau“ in TEST_ONE aktualisiert wird. und andere Werte werden hinzugefügt.

Lassen Sie uns Code schreiben, um ihn zu überprüfen: Was ist die Verwendung von „merge into in Oracle?

INSERT INTO ROOT.TEST_TWO (ID, CODE, MEMO) VALUES (5, 'mrhu', '隔壁老王的IP');
Nach dem Login kopieren

Sehen wir uns den Effekt an:

Das Ausführungsergebnis stimmt mit dem erwarteten Ergebnis überein. Wenn es Ihnen gefällt, folgen Sie bitte und unterstützen Sie es Es!

Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von „merge into' in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage