Home / PostgreSQL / Kombinasi Query di PostgreSQL 18

Kombinasi Query di PostgreSQL 18

Kombinasi Query di PostgreSQL 18

Kombinasi Query di PostgreSQL 18

lebakcyber.net – Kombinasi Query di PostgreSQL 18. Sekarang kita akan mempelajari bagaimana cara melakukan perintah kombinasi Query pada database PostgreSQL 18. Disini kita akan mempelajari bagaimana cara untuk menggabungkan hasil dari dua atau lebih query, melakukan proses penyaringan data yang sama atau berbeda diantara tabel.

Kombinasi Query sendiri digunakan untuk menggabungkan hasil dari beberapa perintah query SELECT agar mendapatkan satu hasil akhir.

Misalnya kita ingin menampilkan data pegawai yang masih aktif ataupun yang sudah tidak lagi aktif dalam satu buah daftar. Menampilkan pegawai yang ada di bidang IT atau bidang hrd atau hasil dari keduanya. Mencari data unik pada suatu tabel namun tidak di tabel lain.

Di PostgreSQL 18 sendiri memiliki empat set operator utama:

Operator Fungsi Duplikasi
Union Menggabungkan hasil query dan menghilangkan duplikat. Duplikat dihapus
Union All Menggabungkan hasil dari Query, termasuk duplikat Duplikasi ikut ditampilkan
Intersect Mengambil data yang ada di kedua query Duplikat tidak ada
Except Mengambil data dari query pertama namun tidak ada pada query kedua Duplikat tidak ada

Syarat untuk melakukan kombinasi query, tabel harus memiliki tipe data dan juga jumlah kolom yang sama.

Untuk mempraktekannya kita buat dulu dua buah tabel baru dengan nama pegawai_2024 dan tabel pegawai_2025 dengan perintah dibawah ini :

//membuat table pegawai 2024
CREATE TABLE pegawai_2024 (id_pegawai SERIAL, nama_pegawai TEXT, bidang TEXT);

//membuat tabel pegawai 2025
CREATE TABLE pegawai_2025 (id_peagawai SERIAL, nama_pegawai TEXT, bidang TEXT);

Lalu kita masukan beberapa pegawai kedalam dua buah tabel tersebut :

INSERT INTO pegawai_2024 (nama_pegawai, bidang) VALUES
('Firdan Ardiansyah', 'IT'),
('Arsyanendra Ardiansyah', 'HRD'),
('Nur Arsy Ardiansyah', 'Pemasaran'),
('Ratna Dwi Sartika', 'Keuangan');

INSERT INTO pegawai_2025 (nama_pegawai, bidang) VALUES
('Firdan Ardiansyah', 'IT'),
('Arsyanendra Ardiansyah', 'HRD'),
('Nur Arsy Ardiansyah', 'Pemasaran'),
('Ratna Dwi Sartika', 'Keuangan'),
('Muhammad Bilal', 'IT'),
('Muhammad Ammar', 'Keuangan');

Sekarang kita pastikan kalau semua data tersebut sudah masuk kedalam dua buah tabel pegawai tersebut dengan perintah SELECT seperti dibawah ini :

select * from pegawai_2024;

 id_pegawai |      nama_pegawai      |  bidang
------------+------------------------+-----------
          1 | Firdan Ardiansyah      | IT
          2 | Arsyanendra Ardiansyah | HRD
          3 | Nur Arsy Ardiansyah    | Pemasaran
          4 | Ratna Dwi Sartika      | Keuangan
select * from pegawai_2025;

 id_peagawai |      nama_pegawai      |  bidang
-------------+------------------------+-----------
           1 | Firdan Ardiansyah      | IT
           2 | Arsyanendra Ardiansyah | HRD
           3 | Nur Arsy Ardiansyah    | Pemasaran
           4 | Ratna Dwi Sartika      | Keuangan
           5 | Muhammad Bilal         | IT
           6 | Muhammad Ammar         | Keuangan

Oke bisa kita lihat kalau kita sudah berhasil membuat dua buah tabel baru di database Kantor pada PostgreSQL 18 dan juga sudah berhasil memasukan data kedalam tabel pegawai_2024 dan tabel pegawai 2025.

Contoh Perintah UNION

Sekarang kita coba melakukan perintah UNION pada database PostgreSQL 18. Seperti yang telah diterangkan diatas kalau perintah UNION akan menghilangkan data yang sama pada hasil pencarian. Contohnya seperti dibawah ini :

SELECT nama_pegawai FROM pegawai_2024
UNION 
SELECT nama_pegawai FROM pegawai_2025;

Maka hasil dari perintah UNION dari perintah diatas seperti dibawah ini :

      nama_pegawai
------------------------
 Muhammad Bilal
 Nur Arsy Ardiansyah
 Arsyanendra Ardiansyah
 Ratna Dwi Sartika
 Muhammad Ammar
 Firdan Ardiansyah

Bisa kita lihat dari hasil pencarian diatas kalau perintah UNION di PostgreSQL 18 untuk tabel pegawai_2024 dan tabel pegawai_2025 akan menampilkan semua data dan menghilangkan data yang sama .

Perintah UNION ALL di PostgreSQL 18

Sekarang kita coba untuk melakukan perintah UNION ALL pada database PostgreSQL 18. Perintah UNION ALL akan menampilkan semua data, termasuk data yang sama didalamnya. Contoh perintahnya seperti dibawah ini :

SELECT nama_pegawai FROM pegawai_2024
UNION ALL 
SELECT nama_pegawai FROM pegawai_2025;

Nanti hasil dari perintah UNION ALL tersebut akan seperti tampilan dibawah ini :

      nama_pegawai
------------------------
 Firdan Ardiansyah
 Arsyanendra Ardiansyah
 Nur Arsy Ardiansyah
 Ratna Dwi Sartika
 Firdan Ardiansyah
 Arsyanendra Ardiansyah
 Nur Arsy Ardiansyah
 Ratna Dwi Sartika
 Muhammad Bilal
 Muhammad Ammar

Dari hasil diatas bisa kita lihat kalau perintah UNION ALL akan menampilkan semua data yang ada pada tabel pegawai_2024 dan juga data pada tabel pegawai_2025, karena perintah UNION ALL tidak menghapus duplikasi data, oleh karena itu semua data yang ada didalam kedua tabel tersebut ditampilkan semua.

Perintah INTERSECT di PostgreSQL 18

Sekarang kita coba untuk melakukan perintah INTERSECT di database PostgreSQL 18. Perintah Intersect sendiri digunakan hanya untuk menampilkan data yang sama pada dua tabel yang berbeda. Contoh perintahnya seperti dibawah ini :

SELECT nama_pegawai FROM pegawai_2024
INTERSECT
SELECT nama_pegawai FROM pegawai_2025;

Bisa kita lihat hasil yang ditampilkan adalah nama-nama pegawai yang ada pada tabel pegawai_2024 dan juga nama-nama pegawai yang juga ada di tabel pegawai_2025 saja, dan nama pegawai yang tidak ada didalam tabel 2024 tidak akan ditampilkan.

Perintah EXCEPT di PostgreSQL 18

Terakhir kita coba praktekan perintah EXCEPT di database PostgreSQL 18. Dimana perintah EXCEPT ini hanya akan menampilkan data yang hanya ada query pertama dan tidak ada didalam query kedua. Contoh perintahnya seperti dibawah ini :

SELECT nama_pegawai FROM pegawai_2025
EXCEPT
SELECT nama_pegawai FROM pegawai_2024;

Hasil dari perintah EXCEPT tersebut akan seperti dibawah ini :

  nama_pegawai
----------------
 Muhammad Ammar
 Muhammad Bilal

Bisa kita lihat hasilnya hanya menampilkan dua buah nama pegawai saja, karena dua pegawai tersebut hanya ada di tabel pegawai_2025 dan tidak ada didalam tabel pegawai_2024.

Kesimpulan

Oke jadi seperti itulah bagaimana cara kombinasi query di PostgreSQL 18 dan juga kita telah mempelajari beberapa perintahnya seperti UNION, UNION ALL, INTERSECT dan EXCEPT. Semoga tutorial belajar PostgreSQL 18 ini dapat bermanfaat.

Jangan lupa untuk selalu berkunjung ke situs lebakcyber.net untuk mendapatkan tutorial mengenai belajar database PostgreSQL 18 lainnya.

Tagged:

Leave a Reply

Your email address will not be published. Required fields are marked *