MySQL - UNION vs UNION ALL (ID)

Halo, para ahli basis data masa depan! Hari ini, kita akan melihat dunia yang menarik MySQL dan mengexplore dua operator kuat: UNION dan UNION ALL. Pada akhir tutorial ini, Anda akan dapat menggabungkan data seperti seorang ahli! Jadi, ambil minuman favorit Anda, dan mari kita mulai!

MySQL - UNION vs UNION ALL

Operator UNION MySQL

Apa itu UNION?

UNION adalah seperti tongkat ajaib di MySQL yang memungkinkan kita untuk menggabungkan hasil dari dua atau lebih pernyataan SELECT. Itu seperti mengundang kelompok teman berbeda ke satu pesta besar – semua orang datang bersama, tapi duplikat dipersilahkan meninggalkan.

Bagaimana UNION bekerja?

Ketika Anda menggunakan UNION, itu melakukan langkah-langkah berikut:

  1. Eksekusi beberapa pernyataan SELECT
  2. Gabungkan hasilnya
  3. Hapus baris duplikat
  4. Kembalikan set unik baris akhir

Sintaks UNION

SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;

Contoh UNION

mari kita katakan kita memiliki dua tabel: fruits dan vegetables. Kita ingin membuat daftar semua item buah-buahan.

-- Buat dan isi tabel fruits
CREATE TABLE fruits (
id INT PRIMARY KEY,
name VARCHAR(50),
color VARCHAR(20)
);

INSERT INTO fruits (id, name, color) VALUES
(1, 'Apple', 'Red'),
(2, 'Banana', 'Yellow'),
(3, 'Orange', 'Orange'),
(4, 'Grape', 'Purple');

-- Buat dan isi tabel vegetables
CREATE TABLE vegetables (
id INT PRIMARY KEY,
name VARCHAR(50),
color VARCHAR(20)
);

INSERT INTO vegetables (id, name, color) VALUES
(1, 'Carrot', 'Orange'),
(2, 'Broccoli', 'Green'),
(3, 'Tomato', 'Red'),
(4, 'Eggplant', 'Purple');

-- Sekarang, mari kita gunakan UNION untuk menggabungkan fruits dan vegetables
SELECT name, color FROM fruits
UNION
SELECT name, color FROM vegetables;

Query ini akan mengembalikan:

name color
Apple Red
Banana Yellow
Orange Orange
Grape Purple
Carrot Orange
Broccoli Green
Tomato Red
Eggplant Purple

Perhatikan bagaimana kita memiliki 8 baris bukan 10? Itu karena UNION menghapus entri duplikat 'Orange' dan 'Purple'!

Operator UNION ALL MySQL

Apa itu UNION ALL?

UNION ALL adalah seperti sepupu yang lebih santai UNION. Itu menggabungkan hasil dari beberapa pernyataan SELECT, tapi tidak memperhatikan penghapusan duplikat. Itu seperti mengadakan pesta di mana semua orang diundang, dan tidak ada yang ditolak di pintu!

Bagaimana UNION ALL bekerja?

UNION ALL mengikuti langkah-langkah berikut:

  1. Eksekusi beberapa pernyataan SELECT
  2. Gabungkan semua hasil, termasuk duplikat
  3. Kembalikan set baris akhir (yang mungkin termasuk duplikat)

Sintaks UNION ALL

SELECT column1, column2, ... FROM table1
UNION ALL
SELECT column1, column2, ... FROM table2;

Contoh UNION ALL

mari kita gunakan tabel fruits dan vegetables lagi, tapi kali ini dengan UNION ALL:

SELECT name, color FROM fruits
UNION ALL
SELECT name, color FROM vegetables;

Query ini akan mengembalikan:

name color
Apple Red
Banana Yellow
Orange Orange
Grape Purple
Carrot Orange
Broccoli Green
Tomato Red
Eggplant Purple

Sekarang kita memiliki semua 10 baris, termasuk duplikat warna!

Perbandingan MySQL UNION vs MySQL UNION ALL

Sekarang kita telah melihat UNION dan UNION ALL dalam aksi, mari kita bandingkan mereka bersamaan:

Fitur UNION UNION ALL
Penghapusan Duplikat Ya Tidak
Kinerja Lebih lambat (karena penghapusan duplikat) Lebih cepat
Penggunaan Memori Lebih tinggi Lebih rendah
Use Case Ketika hasil unik diperlukan Ketika semua hasil, termasuk duplikat, diperlukan

Kapan menggunakan UNION

Gunakan UNION ketika Anda perlu menggabungkan hasil dari beberapa query dan ingin memastikan tidak ada duplikat. Itu bagus untuk situasi seperti:

  1. Membuat daftar unik pelanggan dari basis data berbeda
  2. Menggabungkan hasil pencarian dari beberapa tabel
  3. Membuat laporan yang memerlukan nilai unik
-- Contoh: Temukan semua warna unik buah-buahan dan sayuran
SELECT color FROM fruits
UNION
SELECT color FROM vegetables;

Kapan menggunakan UNION ALL

Gunakan UNION ALL ketika Anda ingin menggabungkan semua hasil, termasuk duplikat, atau ketika Anda tahu tidak ada duplikat dan ingin performa yang lebih baik. Itu ideal untuk:

  1. Menggabungkan data log dari beberapa sumber
  2. Mengagregat data di mana duplikat penting
  3. Menggabungkan data dari dataset yang tidak beririsan
-- Contoh: Hitung semua item buah-buahan berdasarkan warna, termasuk duplikat
SELECT color, COUNT(*) as total FROM (
SELECT color FROM fruits
UNION ALL
SELECT color FROM vegetables
) AS all_produce
GROUP BY color;

Kesimpulan

Dan begitu juga, teman-teman saya! Kita telah melakukan perjalanan melalui negeri UNION dan UNION ALL, mengexplore kesamaan dan perbedaan mereka. Ingat, UNION adalah seperti tuan pesta yang hati-hati untuk memastikan bahwa semua orang unik, sedangkan UNION ALL adalah seperti yang mengatakan "semakin banyak, semakin meriah" yang menjemput semua tamu.

Bila Anda terus menjelajahi MySQL, Anda akan menemukan banyak situasi di mana operator ini sangat berguna. Ingat: ketika Anda memerlukan hasil unik, pilih UNION. Ketika Anda ingin mendapatkan semua dan ingin mendapatkannya cepat, UNION ALL adalah teman Anda.

Sekarang, giliran Anda untuk praktik! Cobalah menggabungkan tabel yang berbeda di basis data Anda menggunakan UNION dan UNION ALL. Coba, buat kesalahan, dan belajar dari mereka. Itulah cara terbaik untuk benar-benar memahami konsep ini.

Sampai jumpa lagi, selamat berquery, dan may your UNIONs always be successful!

Credits: Image by storyset