Apa itu PostgreSQL Union?
Operator PostgreSQL UNION digunakan untuk menggabungkan set hasil dari lebih dari satu pernyataan SELECT menjadi satu set hasil. Segala baris pendua dari hasil penyataan PILIH dihapuskan. Pengendali UNION bekerja dalam dua keadaan:
- Pertanyaan PILIH HARUS mengembalikan sebilangan pertanyaan yang serupa.
- Jenis data semua lajur yang sesuai mesti serasi.
Operator UNION biasanya digunakan untuk menggabungkan data dari jadual yang berkaitan yang belum dinormalisasi dengan sempurna.
Dalam tutorial PostgreSQL ini, anda akan belajar:
- Apa itu PostgreSQL Union?
- Sintaks
- Kesatuan
- Kesatuan Semua
- PERINTAH OLEH
- Bilakah untuk menggunakan Union dan Bilakah untuk menggunakan Union semua?
- Menggunakan pgAdmin
Sintaks
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Berikut adalah penjelasan untuk parameter di atas:
Ungkapan_1, ekspresi_2, ... ekspresi_n adalah pengiraan atau lajur yang perlu anda ambil.
Jadual adalah jadual dari mana anda perlu mengambil rekod.
Keadaan MANA adalah syarat yang mesti dipenuhi agar rekod dapat diambil.
Catatan: bahawa kerana pengendali UNION tidak mengembalikan pendua, penggunaan UNION DISTINCT tidak akan memberi kesan pada hasilnya.
Kesatuan
Pengendali UNION membuang pendua. Mari kita tunjukkan ini.
Kami mempunyai pangkalan data bernama Demo dengan jadual berikut:
Buku:
Harga:
Mari kita jalankan arahan berikut:
SELECT idFROM BookUNIONSELECT idFROM Price;
Perintah akan mengembalikan yang berikut:
Lajur id muncul dalam jadual Buku dan Harga. Namun, hasilnya hanya sekali muncul. Sebabnya ialah pengendali PostgreSQL UNION tidak mengembalikan pendua.
Kesatuan Semua
Pengendali ini menggabungkan set hasil dari lebih daripada satu penyataan PILIH tanpa mengeluarkan pendua. Operator memerlukan setiap pernyataan SELECT untuk mempunyai bilangan medan yang sama dalam set hasil jenis data yang serupa.
Sintaks:
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Berikut adalah penjelasan untuk parameter di atas:
Ungkapan_1, ekspresi_2, ... ekspresi_n adalah pengiraan atau lajur yang perlu anda ambil.
Jadual adalah jadual dari mana anda perlu mengambil rekod.
Keadaan MANA adalah syarat yang mesti dipenuhi agar rekod dapat diambil.
Catatan: Kedua-dua ungkapan mesti mempunyai bilangan ungkapan yang sama.
Kami akan menggunakan jadual berikut:
Buku:
Harga:
Jalankan arahan berikut:
SELECT idFROM BookUNION ALLSELECT idFROM price;
Ia harus mengembalikan yang berikut:
Pendua tidak dikeluarkan.
PERINTAH OLEH
Pengendali PostgreSQL UNION boleh digunakan bersama dengan klausa ORDER BY untuk memerintahkan hasil pertanyaan. Untuk menunjukkan ini, kami akan menggunakan jadual berikut:
Harga:
Harga2:
Berikut adalah arahan yang menunjukkan cara menggunakan pengendali UNION bersama dengan klausa ORDER BY:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;
Perintah akan mengembalikan yang berikut:
Rekod disusun mengikut lajur harga. Klausa memerintahkan rekod dalam urutan menaik secara lalai. Untuk memesannya dalam urutan menurun, tambahkan klausa DESC seperti yang ditunjukkan di bawah:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
Perintah akan mengembalikan yang berikut:
Catatan telah dipesan berdasarkan lajur harga mengikut urutan menurun.
Bilakah untuk menggunakan Union dan Bilakah untuk menggunakan Union semua?
Gunakan pengendali UNION apabila anda mempunyai banyak jadual dengan struktur yang serupa tetapi berpecah kerana satu sebab. Bagus apabila anda perlu membuang / menghilangkan catatan pendua.
Gunakan operator UNION ALL apabila anda tidak perlu membuang / menghapuskan rekod pendua.
Menggunakan pgAdmin
Sekarang mari kita lihat bagaimana ketiga-tiga tindakan dilakukan menggunakan pgAdmin.
Kesatuan
Untuk mencapai perkara yang sama melalui pgAdmin, lakukan ini:
Langkah 1) Log masuk ke akaun pgAdmin anda.
Langkah 2)
- Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
- Klik Demo.
Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
Langkah 4) Klik butang Laksanakan.
Ia harus mengembalikan yang berikut:
Kesatuan Semua
Langkah 1) Log masuk ke akaun pgAdmin anda.
Langkah 2)
- Dari bar navigasi di sebelah kiri, klik Pangkalan Data.
- Klik Demo.
Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:
SELECT idFROM BookUNION ALLSELECT idFROM price;
Langkah 4) Klik butang Laksanakan.
Ia harus mengembalikan yang berikut:
PERINTAH OLEH
Operator UNION ALL boleh digabungkan dengan klausa ORDER BY untuk memerintahkan keputusan dalam hasil yang ditetapkan. Sebagai contoh:
SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;
Perintah akan mengembalikan yang berikut:
Hasilnya telah dipesan.
Ringkasan:
- Operator PostgreSQL UNION menggabungkan hasil dari lebih dari satu pernyataan SELECT ke dalam satu set hasil.
- Pengendali UNION tidak mengembalikan rekod pendua.
- Untuk memesan hasilnya, gabungkan dengan klausa ORDER BY.
- Operator UNION ALL menggabungkan hasil dari lebih dari satu pernyataan SELECT ke dalam satu set hasil.
- Pengendali UNION ALL tidak membuang pendua.
Muat turun Pangkalan Data yang digunakan dalam Tutorial ini