Dalam Oracle, perintah gabungan boleh melakukan operasi sisipan dan kemas kini pada jadual pada masa yang sama dalam satu pernyataan SQL INTO merge" Jadual sasaran MENGGUNAKAN jadual sumber gabungan DENGAN syarat".
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle 11g, komputer Dell G3.
arahan gabungan
Melalui gabungan ini anda boleh melakukan sisipan dan kemas kini pada jadual dalam satu pernyataan SQL pada masa yang sama
Menggunakan pernyataan gabungan, anda boleh melakukan operasi gabungan pada dua jadual yang ditentukan Sintaksnya adalah seperti berikut:
MEGER INTO table1_name USING table2_name ON join_condition WHEN MATCHEO THEN UPDATE SET... WHEN NOT MATCHED THEN INSERT ...VALUES...
Sintaks adalah seperti berikut:
table1_name mewakili nama. jadual sasaran yang perlu digabungkan.
table2_name menunjukkan jadual sumber yang perlu digabungkan.
join_condition mewakili syarat gabungan.
apabila matcheo kemudian kemas kini bermakna jika syarat untuk penggabungan dipenuhi, operasi kemas kini akan dilakukan.
apabila tidak dipadankan maka masukkan bermakna jika syarat tidak dipenuhi, operasi sisipan akan dilakukan.
kemas kini dan masukkan
Jika anda hanya ingin menggabungkan data yang layak dalam jadual sumber ke dalam jadual sasaran, anda hanya boleh menggunakan klausa kemas kini Jika anda ingin menggabungkan data dalam jadual sumber yang tidak memenuhi syarat cantuman Untuk menggabungkan data ke dalam jadual sasaran, anda hanya boleh menggunakan klausa sisipan.
Dalam kedua-dua klausa kemas kini dan klausa sisipan, anda boleh menggunakan klausa where untuk menentukan syarat untuk sisipan dikemas kini. Pada masa ini, untuk operasi cantuman, dua peringkat syarat penapisan disediakan Peringkat pertama ialah syarat cantum, yang ditentukan oleh klausa on dalam klausa penggabungan, dan peringkat kedua ialah keadaan tempat yang dinyatakan dalam klausa kemas kini atau sisipan. . Ini menjadikan operasi gabungan lebih fleksibel dan canggih.
Di sini kita mencipta dua jadual, satu jadual orang dan satu lagi jadual orang baharu Struktur kedua-dua jadual adalah sama
SQL> create table person( 2 pid number(4), 3 page number(3) 4 );
Jadual telah dibuat.
--Masukkan tiga baris data
SQL> insert into person values(1,20);
1 baris telah dibuat.
SQL> insert into person values(2,21);
1 baris dibuat.
SQL> insert into person values(3,22);
1 baris dibuat.
SQL> create table newperson( 2 pid number(4), 3 page number(3) 4 );
Jadual dibuat.
--插入三行数据 SQL> insert into newperson values(1,100);
1 baris dibuat.
SQL> insert into newperson values(4,100);
1 baris dibuat.
SQL> insert into newperson values(5,100);
1 baris dibuat.
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 baris telah digabungkan.
--Pernyataan sql di atas ialah apabila pid secara peribadi adalah sama dengan pid dalam orang baharu, tetapkan halaman yang sepadan secara peribadi kepada umur dalam orang baharu Apabila ia tidak sepadan, masukkan syarat tidak layak kepada orang data. Keputusan pelaksanaan adalah seperti berikut:
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
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Apakah kegunaan gabungan dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!