MySQL - UNION vs UNION ALL

Hai, para para database wizard masa depan! Hari ini, kita akan melihat dunia yang menarik MySQL dan menjelajahi dua operator kuat: UNION dan UNION ALL. Pada akhir panduan ini, Anda akan dapat menggabungkan data seperti seorang ahli! Jadi, ambil minuman kesukaan 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 dicegah untuk 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

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

-- Buat danisi 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 danisi 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 buah-buahan dan sayuran
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 bukannya 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 dicegah 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

Ayo gunakan tabel fruits dan vegetables lagi, tapi sekarang 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 UNION vs UNION ALL MySQL

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 ingin menggabungkan hasil dari beberapa query dan ingin memastikan tidak ada duplikat. Itu bagus untuk situasi seperti:

  1. Membuat daftar unik pelanggan dari basis data yang berbeda
  2. Menggabungkan hasil pencarian dari tabel yang berbeda
  3. Menghasilkan 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 kinerja yang lebih baik. Itu ideal untuk:

  1. Menggabungkan data log dari beberapa sumber
  2. Mengakumulasi data di mana duplikat penting
  3. Menggabungkan data dari dataset yang tidak beririsan
-- Contoh: Hitung semua item buah-buahan dan sayuran 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, teman-teman saya! Kita telah menjelajahi negeri UNION dan UNION ALL, menjelajahi kesamaan dan perbedaan mereka. Ingat, UNION adalah seperti tuan pesta yang mencermati yang memastikan bahwa semua orang unik, sedangkan UNION ALL adalah jenis "semakin banyak, semakin meriah" yang menjemput semua tamu.

Sebagai 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 memerlukan kinerja yang cepat, UNION ALL adalah teman Anda.

Sekarang, itu giliran Anda untuk berlatih! Cobalah menggabungkan tabel yang berbeda dalam database Anda menggunakan UNION dan UNION ALL. Coba,buat kesalahan, dan belajar dari mereka. Itu adalah cara terbaik untuk benar-benar menguasai konsep ini.

Sampaijumpa lagi, selamat mengeksekusi query, dan semoga UNION Anda selalu sukses!

Credits: Image by storyset