Perbezaan Antara UNION dan UNION ALL dalam SQL
UNION dan UNION ALL ialah pengendali SQL yang digunakan untuk menggabungkan hasil dua atau lebih pernyataan SELECT. Walaupun mereka mempunyai tujuan yang sama, mereka berbeza dalam cara mereka mengendalikan baris pendua.
1. KESATUAN
- Menggabungkan hasil dua atau lebih pernyataan SELECT ke dalam set hasil tunggal.
-
Mengalih keluar baris pendua secara automatik daripada set hasil.
-
Isih: Melakukan operasi DISTINCT tersirat untuk mengalih keluar pendua, yang boleh menjadikannya lebih perlahan untuk set data yang besar.
Sintaks:
SELECT column1, column2
FROM table1
UNION
SELECT column1, column2
FROM table2;
Salin selepas log masuk
Contoh:
Jadual: Customers_USA
CustomerID |
Name |
1 |
Alice |
2 |
Bob |
Jadual: Customers_UK
CustomerID |
Name |
2 |
Bob |
3 |
Charlie |
Pertanyaan:
SELECT Name FROM Customers_USA
UNION
SELECT Name FROM Customers_UK;
Salin selepas log masuk
Keputusan:
-
Bob muncul sekali sahaja kerana pendua dialih keluar.
2. KESATUAN SEMUA
- Menggabungkan hasil dua atau lebih pernyataan SELECT ke dalam set hasil tunggal.
-
Tidak mengalih keluar baris pendua.
- Lebih pantas daripada UNION kerana tiada semakan pendua berlaku.
Sintaks:
SELECT column1, column2
FROM table1
UNION ALL
SELECT column1, column2
FROM table2;
Salin selepas log masuk
Contoh:
Menggunakan jadual yang sama Customers_USA dan Customers_UK:
Pertanyaan:
SELECT Name FROM Customers_USA
UNION ALL
SELECT Name FROM Customers_UK;
Salin selepas log masuk
Keputusan:
Name |
Alice |
Bob |
Bob |
Charlie |
-
Bob muncul dua kali kerana pendua tidak dialih keluar.
Perbezaan Utama
Ciri |
UNION |
KESATUAN SEMUA |
Feature |
UNION |
UNION ALL |
Duplicates |
Removes duplicate rows. |
Retains all rows, including duplicates. |
Performance |
Slower due to duplicate removal. |
Faster since no duplicate-checking. |
Use Case |
When duplicates must be eliminated. |
When duplicates are acceptable or necessary. |
Sorting |
Implicit sorting (deduplication). |
No implicit sorting. |
Pendua |
Mengalih keluar baris pendua. |
Mengekalkan semua baris, termasuk pendua. |
Prestasi
|
Lebih perlahan disebabkan pengalihan keluar pendua. |
Lebih pantas kerana tiada penyemakan pendua. |
Kes Penggunaan |
Apabila pendua mesti dihapuskan. |
Apabila pendua boleh diterima atau perlu. |
Isih
|
Isih tersirat (deduplikasi). |
Tiada pengisihan tersirat. |
Bila Perlu Digunakan?
:
Apabila anda mahukan set rekod unik daripada pertanyaan gabungan.
Contoh: Menggabungkan senarai pelanggan dari wilayah berbeza sambil memastikan tiada pendua.
:
Apabila rekod pendua boleh diterima atau diperlukan.
Contoh: Menjana log transaksi daripada pelbagai sumber tanpa menapis pendua.
Kesimpulan
Kedua-dua UNION dan UNION ALL ialah alat yang berharga untuk menggabungkan set data dalam SQL. Memilih antara keduanya bergantung pada keperluan khusus pertanyaan anda—sama ada anda memerlukan pengalihan keluar pendua atau mengutamakan prestasi.
Hai, saya Abhay Singh Kathayat!
Saya seorang pembangun tindanan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.
Atas ialah kandungan terperinci SQL UNION vs UNION ALL: Perbezaan Utama Diterangkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!