Panduan Lengkap Syntax UNION di SQL

UNION di SQL digunakan untuk menggabungkan hasil dari dua atau lebih query SELECT ke dalam satu hasil gabungan. UNION sangat berguna ketika Anda ingin menggabungkan data dari tabel berbeda atau dari query yang berbeda tetapi memiliki struktur kolom yang sama.


Cara Kerja UNION

  1. UNION menggabungkan hasil dari dua atau lebih query SELECT.
  2. Secara default, UNION menghapus baris duplikat.
  3. Kolom pada query SELECT yang digabungkan harus memiliki jumlah yang sama, tipe data yang kompatibel, dan urutan yang sama.

Sintaks Dasar UNION

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

Catatan Penting:

  • Setiap query SELECT harus memiliki jumlah kolom yang sama.
  • Tipe data kolom harus kompatibel (misalnya, kolom angka dengan kolom angka, kolom teks dengan kolom teks).

Contoh Penggunaan UNION

1. UNION Dasar

Misalkan Anda memiliki dua tabel: Tabel Employees_FullTime

EmployeeID Name Department
1 Alice HR
2 Bob IT

Tabel Employees_PartTime

EmployeeID Name Department
3 Charlie IT
4 Diana Sales

Query:

SELECT EmployeeID, Name, Department
FROM Employees_FullTime
UNION
SELECT EmployeeID, Name, Department
FROM Employees_PartTime;

Hasil:

EmployeeID Name Department
1 Alice HR
2 Bob IT
3 Charlie IT
4 Diana Sales

2. UNION dengan Duplikasi (UNION ALL)

Jika Anda ingin menyertakan baris duplikat dalam hasil, gunakan UNION ALL.

Query:

SELECT EmployeeID, Name, Department
FROM Employees_FullTime
UNION ALL
SELECT EmployeeID, Name, Department
FROM Employees_PartTime;

Hasil (termasuk duplikasi jika ada data yang sama di kedua tabel):

EmployeeID Name Department
1 Alice HR
2 Bob IT
3 Charlie IT
4 Diana Sales

3. UNION dengan Filter

Anda dapat menambahkan klausa WHERE pada masing-masing query untuk memfilter data.

Query:

SELECT EmployeeID, Name, Department
FROM Employees_FullTime
WHERE Department = 'IT'
UNION
SELECT EmployeeID, Name, Department
FROM Employees_PartTime
WHERE Department = 'Sales';

Hasil:

EmployeeID Name Department
2 Bob IT
4 Diana Sales

4. UNION dengan Kolom Tertentu

Anda dapat memilih hanya kolom tertentu dari setiap tabel.

Query:

SELECT Name, Department
FROM Employees_FullTime
UNION
SELECT Name, Department
FROM Employees_PartTime;

Hasil:

Name Department
Alice HR
Bob IT
Charlie IT
Diana Sales

Perbedaan UNION dan UNION ALL

Fitur UNION UNION ALL
Duplikasi Dihapus Ya Tidak
Performa Lebih lambat karena ada penghapusan duplikat Lebih cepat karena tidak memproses duplikat
Kegunaan Saat hanya data unik diperlukan Saat semua data, termasuk duplikat, diperlukan

UNION dengan ORDER BY

Untuk mengurutkan hasil gabungan, gunakan ORDER BY setelah semua query selesai.

Query:

SELECT EmployeeID, Name, Department
FROM Employees_FullTime
UNION
SELECT EmployeeID, Name, Department
FROM Employees_PartTime
ORDER BY Name;

Hasil (diurutkan berdasarkan kolom Name):

EmployeeID Name Department
1 Alice HR
2 Bob IT
3 Charlie IT
4 Diana Sales

Kesalahan Umum dalam Menggunakan UNION

  1. Jumlah Kolom Tidak Sama: Pastikan semua query SELECT memiliki jumlah kolom yang sama.

    -- Salah
    SELECT Name, Department
    FROM Employees_FullTime
    UNION
    SELECT Name
    FROM Employees_PartTime; -- Error: Jumlah kolom tidak sama
    
  2. Tipe Data Tidak Kompatibel: Pastikan tipe data kolom yang digabungkan kompatibel.

    -- Salah
    SELECT Name, Department
    FROM Employees_FullTime
    UNION
    SELECT Name, EmployeeID -- Error: Tipe data tidak kompatibel
    FROM Employees_PartTime;
    

Kapan Menggunakan UNION

  • Menggabungkan data dari beberapa tabel dengan struktur serupa.
  • Menghasilkan hasil gabungan dari query yang berbeda.
  • Menyatukan data unik (gunakan UNION) atau seluruh data termasuk duplikasi (gunakan UNION ALL).

Kesimpulan

UNION adalah alat yang sangat kuat untuk menggabungkan data dari berbagai sumber dalam SQL. Dengan memahami cara kerjanya, Anda dapat mengelola dan menganalisis data relasional dengan lebih efektif. Pastikan Anda memahami perbedaan UNION dan UNION ALL, serta perhatikan kompatibilitas kolom untuk menghindari kesalahan.

Apakah ada bagian yang perlu dijelaskan lebih lanjut? 😊

Komentar

Postingan populer dari blog ini

Koneksi VB - My SQL tanpa ODBC

Membuat Game Pukul Bola Sederhana dengan Visual Basic

Visual Basic 6.0: Pengantar, Fitur, dan Kelebihannya