In Oracle kann der Merge-Befehl gleichzeitig Einfügungen und Aktualisierungen für eine Tabelle in einer SQL-Anweisung ausführen. Die Merge-Anweisung wird häufig verwendet, um Merge-Operationen für zwei angegebene Tabellen durchzuführen USING-Merge-Quelltabelle-EIN-Bedingung".
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.
Merge-Befehl
Durch diese Zusammenführung können Sie Einfügungen und Aktualisierungen für eine Tabelle gleichzeitig in einer SQL-Anweisung durchführen.
Mit der Meger-Anweisung können Sie Zusammenführungsoperationen für zwei Tabellen durchführen In den angegebenen Tabellen lautet die Syntax wie folgt:
MEGER INTO table1_name USING table2_name ON join_condition WHEN MATCHEO THEN UPDATE SET... WHEN NOT MATCHED THEN INSERT ...VALUES...
Die Syntaxbeschreibung lautet wie folgt:
table1_name stellt die Zieltabelle dar, die zusammengeführt werden muss.
table2_name gibt die Quelltabelle an, die zusammengeführt werden muss.
join_condition repräsentiert die Zusammenführungsbedingung.
when matcheo then update bedeutet, dass der Aktualisierungsvorgang durchgeführt wird, wenn die Bedingungen für die Zusammenführung erfüllt sind.
Wenn keine Übereinstimmung vorliegt, bedeutet Einfügen, dass der Einfügevorgang ausgeführt wird, wenn die Bedingungen nicht erfüllt sind.
Aktualisieren und einfügen
Wenn Sie nur die qualifizierten Daten in der Quelltabelle mit der Zieltabelle zusammenführen möchten, können Sie die Aktualisierungsklausel nur verwenden, wenn Sie die Daten in der Quelltabelle zusammenführen möchten, die die Zusammenführung nicht erfüllen Um Bedingungen in die Zieltabelle einzufügen, können Sie nur die Einfügeklausel verwenden.
Sowohl in der Update-Klausel als auch in der Insert-Klausel können Sie die Where-Klausel verwenden, um die Bedingungen für die aktualisierte Einfügung anzugeben. Zu diesem Zeitpunkt werden für den Zusammenführungsvorgang zwei Ebenen von Filterbedingungen bereitgestellt. Die erste Ebene ist die Zusammenführungsbedingung, die durch die On-Klausel in der Meger-Klausel angegeben wird, und die zweite Ebene ist die Where-Bedingung, die in der Update- oder Insert-Klausel angegeben wird . Dies macht den Zusammenführungsvorgang flexibler und anspruchsvoller.
Hier erstellen wir zwei Tabellen, eine ist die Personentabelle und die andere ist die Newpersono-Tabelle. Die Struktur der beiden Tabellen ist dieselbe.
SQL> create table person( 2 pid number(4), 3 page number(3) 4 );
Die Tabelle wurde erstellt.
--Fügen Sie drei Datenzeilen ein
SQL> insert into person values(1,20);
1 Zeile wurde erstellt.
SQL> insert into person values(2,21);
1 Zeile erstellt.
SQL> insert into person values(3,22);
1 Zeile erstellt.
SQL> create table newperson( 2 pid number(4), 3 page number(3) 4 );
Tabelle erstellt.
--插入三行数据 SQL> insert into newperson values(1,100);
1 Zeile erstellt.
SQL> insert into newperson values(4,100);
1 Zeile erstellt.
SQL> insert into newperson values(5,100);
1 Zeile erstellt.
SQL> select * from person; PID PAGE ---------- ---------- 1 20 2 21 3 22 SQL> select * from newperson; PID PAGE ---------- ---------- 1 100 4 100 5 100 SQL> merge into person p1 2 using newperson p2 3 on (p1.pid=p2.pid) 4 when matched then 5 update set p1.page=p2.page 6 when not matched then 7 insert (pid,page) values(p2.pid,p2.page);
3 Zeilen zusammengeführt.
--Die obige SQL-Anweisung lautet: Wenn die PID in person gleich der PID in newperson ist, wird die entsprechende Seite in person auf das Alter in newperson gesetzt. Wenn sie nicht übereinstimmt, werden unqualifizierte Daten in person eingefügt. Die Ausführungsergebnisse sind wie folgt:
SQL> select * from person; PID PAGE ---------- ---------- 1 100 2 21 3 22 5 100 4 100 --newperson表中的数据不会改变: SQL> select * from newperson; PID PAGE ---------- ---------- 1 100 4 100 5 100
Empfohlenes Tutorial: „Oracle Video Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist die Verwendung von Merge in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!