ID (Indonesia) Translation
SQL - Menggunakan Joins: Panduan Komprehensif untuk Pemula
Hai teman-teman pecinta basis data! Sebagai guru ilmu komputer dengan tahun-tahun pengalaman, saya sangat gembira untuk memandu Anda melalui dunia menarik dari SQL joins. Jangan khawatir jika Anda baru dalam programming – kita akan mulai dari dasar dan maju perlahan-lahan. Pada akhir panduan ini, Anda akan dapat menggabungkan tabel seperti seorang ahli!
Apa Itu SQL Joins?
Bayangkan Anda sedang mengatur sebuah reuni besar keluarga. Anda punya satu daftar dengan nama dan usia, dan lainnya dengan nama dan makanan kesukaan. Apakah tidak akan bagus jika Anda dapat menggabungkan daftar ini untuk mendapatkan gambaran lengkap dari setiap anggota keluarga? Itu tepat apa yang SQL joins lakukan untuk tabel-tabel basis data!
Dalam SQL, klausa join digunakan untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berhubungan antaranya. Itu seperti membuat sebuah tabel super dengan informasi dari beberapa sumber.
Klausa JOIN di SQL
Syntax dasar untuk JOIN SQL terlihat seperti ini:
SELECT nama_kolom(s)
FROM tabel1
JOIN tabel2
ON tabel1.nama_kolom = tabel2.nama_kolom;
mari kitauraikan ini:
- Kita memilih kolom yang ingin kita lihat dalam hasil.
- Kita menentukan tabel pertama (tabel1) dalam klausa FROM.
- Kita menggunakan JOIN untuk menandakan bahwa kita ingin menggabungkan dengan tabel lain (tabel2).
- Klausa ON menentukan bagaimana tabel harus cocok.
Jenis-Jenis Joins di SQL
Sekarang, mari kita jelajahi jenis-jenis join yang tersedia dalam SQL. Saya suka menganggap ini sebagai cara-cara berbeda untuk menggabungkan daftar tamu untuk reuni keluarga kita!
1. INNER JOIN
INNER JOIN mirip dengan mengundang hanya saudara sepupu yang muncul di daftar Anda dan saudara perempuan Anda. Ini mengembalikan rekord yang memiliki nilai yang cocok di kedua tabel.
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
Query ini akan mengembalikan semua pesanan bersama dengan nama pelanggan, tapi hanya untuk pelanggan yang telah memesan.
2. LEFT (OUTER) JOIN
LEFT JOIN mirip dengan mencantumkan semua orang di daftar Anda, bahkan jika mereka tidak ada di daftar saudara perempuan Anda. Ini mengembalikan semua rekord dari tabel kiri dan rekord yang cocok dari tabel kanan.
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
Ini akan menampilkan semua pelanggan, bahkan mereka yang belum memesan (OrderID mereka akan NULL).
3. RIGHT (OUTER) JOIN
RIGHT JOIN adalah kebalikan dari LEFT JOIN. Itu seperti menggunakan daftar saudara perempuan Anda sebagai utama. Ini mengembalikan semua rekord dari tabel kanan dan rekord yang cocok dari tabel kiri.
SELECT Orders.OrderID, Employees.LastName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID;
Ini akan menampilkan semua karyawan, bahkan mereka yang belum memproses pesanan apa pun.
4. FULL (OUTER) JOIN
FULL JOIN mirip dengan menggabungkan daftar Anda dan saudara perempuan Anda, mencantumkan semua orang dari kedua sisi. Ini mengembalikan semua rekord saat ada cocokan di tabel kiri atau kanan.
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
Ini akan menampilkan semua pelanggan dan semua pesanan, dengan nilai NULL di mana tidak ada cocokan.
Contoh Praktis
Ayo uji pengetahuan kita dengan beberapa konteks dunia nyata!
Contoh 1: Menggabungkan Informasi Customer dan Order
Misalnya kita punya dua tabel: Customers
dan Orders
. Kita ingin melihat semua pelanggan dan pesanan mereka (jika ada).
SELECT Customers.CustomerName, Orders.OrderID, Orders.OrderDate
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Query ini akan:
- Daftarkan semua pelanggan, bahkan mereka yang belum memesan.
- Menampilkan OrderID dan OrderDate untuk pelanggan yang memesan.
- Menampilkan NULL untuk OrderID dan OrderDate untuk pelanggan tanpa pesanan.
- Mengurutkan hasil berdasarkan CustomerName.
Contoh 2: Menemukan Karyawan yang Belum Membuat Penjualan
Ayo katakan kita ingin identifikasi karyawan yang belum memproses pesanan apa pun.
SELECT Employees.EmployeeID, Employees.LastName, Employees.FirstName
FROM Employees
LEFT JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID
WHERE Orders.OrderID IS NULL;
Query ini akan:
- Menggabungkan tabel Employees dan Orders.
- Menggunakan klausa WHERE untuk menyaring karyawan tanpa pesanan yang cocok.
- Mengembalikan hanya karyawan yang belum memproses pesanan apa pun.
Tips dan Trik
- Selalu mulai dengan join sederhana dan perlahan-lahan tingkatkan kompleksitas.
- Gunakan alias tabel untuk kelegaan baca, terutama dengan nama tabel yang panjang:
SELECT c.CustomerName, o.OrderID FROM Customers c LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;
- Hatikan kinerja dengan dataset besar. Join bisa menjadi berat.
Metode Join Umum
Berikut adalah tabel praktis yang menggabungkan metode join yang kita diskusikan:
Jenis Join | Deskripsi |
---|---|
INNER JOIN | Mengembalikan rekord yang memiliki nilai yang cocok di kedua tabel |
LEFT JOIN | Mengembalikan semua rekord dari tabel kiri dan rekord yang cocok dari tabel kanan |
RIGHT JOIN | Mengembalikan semua rekord dari tabel kanan dan rekord yang cocok dari tabel kiri |
FULL JOIN | Mengembalikan semua rekord saat ada cocokan di tabel kiri atau kanan |
Ingat, latihan membuat sempurna! Cobalah joins ini dengan dataset yang berbeda, dan segera Anda akan dapat menggabungkan tabel seperti seorang ahli basis data. Selamat coding, dan semoga joins Anda selalu sukses!
Credits: Image by storyset