SQL - Full Join: Panduan Lengkap untuk Pemula
Hai teman-teman, para maestro SQL masa depan! Saya sangat senang menjadi panduanmu dalam perjalanan menarik ini ke dunia SQL Full Joins. Sebagai guru ilmu komputer dengan tahun-tahun pengalaman, saya telah melihat banyak murid terangsang saat mereka akhirnya memahami konsep kuat ini. Jadi, mari kita roll up our sleeves dan masuk ke dalam!
The SQL Full Join
Apa Itu Full Join?
Bayangkan Anda sedang merencanakan pesta besar dan Anda punya dua daftar tamu: satu untuk teman-teman dan lainnya untuk keluarga. Full Join adalah seperti menggabungkan daftar ini sedemikian rupa sehingga mencakup semua orang, bahkan jika mereka hanya ada di salah satu daftar. Dalam istilah SQL, Full Join mengembalikan semua baris dari kedua tabel, tanpa menghiraukan apakah ada kesesuaian atau tidak.
Syntax Full Join
Ini adalah sintaks dasar Full Join:
SELECT columns
FROM table1
FULL JOIN table2
ON table1.column = table2.column;
mari kitauraikan ini:
-
SELECT columns
: Tentukan kolom mana yang Anda inginkan dalam hasil Anda. -
FROM table1
: Ini adalah tabel pertama Anda. -
FULL JOIN table2
: Ini memberitahu SQL Anda ingin melakukan Full Join dengan tabel kedua. -
ON table1.column = table2.column
: Ini adalah kondisi join Anda, menentukan bagaimana tabel tersebut berhubungan.
Contoh Sederhana
Ayo katakan kita punya dua tabel: Employees
dan Departments
.
-- Buat tabel Employees
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(50),
DepartmentID INT
);
-- Buat tabel Departments
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName VARCHAR(50)
);
-- Masukkan beberapa data
INSERT INTO Employees VALUES (1, 'Alice', 1), (2, 'Bob', 2), (3, 'Charlie', NULL);
INSERT INTO Departments VALUES (1, 'HR'), (2, 'IT'), (3, 'Finance');
-- Lakukan Full Join
SELECT e.Name, d.DepartmentName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID;
Kueri ini akan mengembalikan:
Name | DepartmentName |
---|---|
Alice | HR |
Bob | IT |
Charlie | NULL |
NULL | Finance |
Perhatikan bagaimana Charlie (yang tidak ditugaskan ke departemen manapun) dan Finance (yang tidak punya karyawan) tetap termasuk dalam hasil. Itu adalah keajaiban Full Join!
Menggabungkan Banyak Tabel dengan Full Join
Sekarang, mari kita tingkatkan. Apa bila kita ingin menggabungkan lebih dari dua tabel? Tidak ada masalah! Full Joins bisa menangani itu juga.
Contoh Gabungan Tiga Tabel
Ayo tambahkan tabel Projects
ke contoh sebelumnya:
-- Buat tabel Projects
CREATE TABLE Projects (
ProjectID INT PRIMARY KEY,
ProjectName VARCHAR(50),
DepartmentID INT
);
-- Masukkan beberapa data
INSERT INTO Projects VALUES (1, 'Website Redesign', 2), (2, 'Employee Survey', 1), (3, 'Cost Cutting', 3);
-- Lakukan Full Join dengan tiga tabel
SELECT e.Name, d.DepartmentName, p.ProjectName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID
FULL JOIN Projects p ON d.DepartmentID = p.DepartmentID;
Kueri ini akan memberikan kita pandangan komprehensif tentang karyawan, departemen mereka, dan proyek yang terkait:
Name | DepartmentName | ProjectName |
---|---|---|
Alice | HR | Employee Survey |
Bob | IT | Website Redesign |
Charlie | NULL | NULL |
NULL | Finance | Cost Cutting |
Bagaimana menariknya kita bisa melihat keseluruhan gambar hanya dengan satu kueri? Itu seperti memiliki visi sinar X untuk basis data Anda!
Full Join dengan WHERE Clause
kadang-kadang, kita ingin menyaring hasil Full Join kita. Itu adalah saat WHERE clause berguna.
Menyaring Hasil Full Join
Ayo ubah kueri sebelumnya agar hanya menampilkan departemen dengan proyek:
SELECT e.Name, d.DepartmentName, p.ProjectName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID
FULL JOIN Projects p ON d.DepartmentID = p.DepartmentID
WHERE p.ProjectName IS NOT NULL;
Ini akan memberikan kita:
Name | DepartmentName | ProjectName |
---|---|---|
Alice | HR | Employee Survey |
Bob | IT | Website Redesign |
NULL | Finance | Cost Cutting |
Lihat bagaimana Charlie hilang dari hasil kita? Itu karena dia tidak terkait dengan proyek manapun.
Menangani Nilai NULL
Ketika bekerja dengan Full Joins, Anda sering akan menemukan nilai NULL. Ini adalah tips pro: gunakan COALESCE untuk mengganti NULL dengan nilai default:
SELECT
COALESCE(e.Name, 'Unassigned') AS EmployeeName,
COALESCE(d.DepartmentName, 'No Department') AS DepartmentName,
COALESCE(p.ProjectName, 'No Project') AS ProjectName
FROM Employees e
FULL JOIN Departments d ON e.DepartmentID = d.DepartmentID
FULL JOIN Projects p ON d.DepartmentID = p.DepartmentID;
Ini akan memberikan kita output yang lebih user-friendly:
EmployeeName | DepartmentName | ProjectName |
---|---|---|
Alice | HR | Employee Survey |
Bob | IT | Website Redesign |
Charlie | No Department | No Project |
Unassigned | Finance | Cost Cutting |
Jauh lebih baik, kan? Sekarang kita memiliki pandangan jelas tentang keseluruhan organisasi kita, termasuk karyawan tanpa departemen dan departemen tanpa proyek.
Kesimpulan
Dan itu adalah dia, teman-teman! Kita telah berpergian melalui negeri SQL Full Joins, dari konsep dasar hingga teknik yang lebih lanjut. Ingat, Full Joins adalah seperti undangan pesta yang inklusif - semua orang diterima, baik mereka memiliki kesesuaian atau tidak.
Sekarang, saat Anda mempraktikkan konsep ini, Anda akan menemukan bahwa Full Joins adalah alat yang sangat kuat untuk analisis dan pelaporan data. Mereka memungkinkan Anda melihat gambar keseluruhan data Anda, termasuk apa yang mungkin hilang.
Tetap mencoba, tetap bergabung, dan terutama, tetap bersenang-senang dengan SQL! Sebelum Anda tahu, Anda akan menjadi ninja Full Join di tim Anda. Selamat coding!
Credits: Image by storyset