Panduan Lengkap tentang SQL Full Join untuk Pemula
Hai teman-teman, para maestro SQL masa depan! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ini ke dunia SQL Full Joins. Sebagai guru ilmu komputer dengan tahun-tahun pengalaman, saya telah melihat banyak siswa terangsang saat mereka akhirnya memahami konsep ini yang kuat. mari kita lipat lengan dan masuk ke dalam!
SQL Full Join
Apa Itu Full Join?
Bayangkan Anda sedang merencanakan pesta besar dan Anda punya dua daftar tamu: satu untuk teman-teman Anda dan lainnya untuk keluarga Anda. Full Join adalah seperti menggabungkan daftar ini 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 kesamaan atau tidak.
Sintaks Full Join
Berikut 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 bahwa Anda ingin melakukan Full Join dengan tabel kedua. -
ON table1.column = table2.column
: Ini adalah kondisi join Anda, menentukan bagaimana tabel tersebut terhubung.
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 belum ditugaskan ke departemen manapun) dan Finance (yang tidak memiliki karyawan) tetap dimasukkan ke 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 dapat menangani itu juga.
Contoh Gabungan Tiga Tabel
Ayo menambahkan 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 dapat melihat keseluruhan gambar hanya dengan satu kueri? Seperti memiliki penglihatan 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 modifikasi kueri sebelumnya untuk 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 menghilang dari hasil kita? Itu karena dia tidak terkait dengan proyek manapun.
Menangani Nilai NULL
Ketika bekerja dengan Full Joins, Anda akan sering menemui nilai NULL. Ini adalah tip profesional: 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 seluruh organisasi kita, termasuk karyawan tanpa departemen dan departemen tanpa proyek.
Kesimpulan
Dan begitu, teman-teman! Kita telah melintasi negeri SQL Full Joins, dari konsep dasar hingga teknik yang lebih maju. Ingat, Full Joins adalah seperti undangan pesta termasuk - semua orang diterima, baik mereka memiliki kesamaan atau tidak.
Sekarang Anda berlatih konsep ini, Anda akan menemukan bahwa Full Joins adalah alat yang sangat kuat untuk analisis dan laporan data. Mereka memungkinkan Anda melihat keseluruhan gambar data Anda, termasuk apa yang mungkin hilang.
Terus mencoba, terus menggabungkan, dan terutama, terus bersenang-senang dengan SQL! Sebelum Anda tahu, Anda akan menjadi petarung Full Join dalam tim Anda. Selamat berkoding!
Credits: Image by storyset