SQL - Menggunakan Joins: Panduan Komprehensif untuk Pemula
Hai teman-teman pecinta basis data! Sebagai guru ilmu komputer dengan pengalaman tahunan, saya sangat gembira untuk memandu anda melalui dunia menarik 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?
Imaginasi anda sedang mengatur sebuah reuni besar keluarga. Anda punya satu daftar dengan nama dan umur, dan yang lain dengan nama dan makanan kesukaan. Bagaimana jika anda dapat menggabungkan daftar ini untuk mendapatkan gambaran lengkap tentang setiap anggota keluarga? Itu tepat apa yang SQL joins lakukan untuk tabel basis data!
Dalam SQL, klausal join digunakan untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berkaitan antara mereka. Itu seperti membuat tabel super dengan informasi dari beberapa sumber.
Klausal SQL Join
Syntax dasar untuk JOIN SQL seperti ini:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
mari kitauraikan ini:
- Kita SELECT kolom yang kita ingin lihat dalam hasil.
- Kita tentukan tabel pertama (table1) dalam klausa FROM.
- Kita gunakan JOIN untuk menunjukkan bahwa kita ingin menggabungkan dengan tabel lain (table2).
- Klausa ON menentukan bagaimana tabel harus dicocokkan.
Jenis Join di SQL
Sekarang, mari kita jelajahi jenis join yang berbeda tersedia di SQL. Saya suka menganggap ini sebagai cara berbeda untuk menggabungkan daftar tamu untuk reuni keluarga kami!
1. INNER JOIN
INNER JOIN seperti mengundang hanya saudara sepupu yang muncul di daftar anda dan saudara perempuan anda. Ini mengembalikan catatan 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 seperti mencakup semua orang di daftar anda, bahkan jika mereka tidak ada di daftar saudara perempuan anda. Ini mengembalikan semua catatan dari tabel kiri dan catatan 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 sebaliknya dari LEFT JOIN. Itu seperti menggunakan daftar saudara perempuan anda sebagai utama. Ini mengembalikan semua catatan dari tabel kanan dan catatan 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 seperti menggabungkan daftar anda dan saudara perempuan anda, mencakup semua orang dari kedua belah pihak. Ini mengembalikan semua catatan saat terdapat 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
Marilah kita uji pengetahuan kita dengan beberapa konteks dunia nyata!
Contoh 1: Menggabungkan Informasi Pelanggan dan Pesanan
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:
- Daftar 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 mengidentifikasi 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 kejelasan, terutama dengan nama tabel 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 sumber intensif sumber daya.
Metode Join Umum
Berikut adalah tabel praktis yang menyajikan metode join yang kita diskusikan:
Jenis Join | Deskripsi |
---|---|
INNER JOIN | Mengembalikan catatan yang memiliki nilai yang cocok di kedua tabel |
LEFT JOIN | Mengembalikan semua catatan dari tabel kiri, dan catatan yang cocok dari tabel kanan |
RIGHT JOIN | Mengembalikan semua catatan dari tabel kanan, dan catatan yang cocok dari tabel kiri |
FULL JOIN | Mengembalikan semua catatan saat terdapat cocokan di tabel kiri atau kanan |
Ingat, latihan membuat sempurna! Cobalah join ini dengan dataset yang berbeda, dan segera anda akan menjadi ahli menggabungkan tabel. Selamat coding, dan semoga join anda selalu sukses!
Credits: Image by storyset