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
- UNION menggabungkan hasil dari dua atau lebih query SELECT.
- Secara default, UNION menghapus baris duplikat.
- 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
-
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 -
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
Posting Komentar