DBMS - Penyambungan Database: Panduan Ramah untuk Pemula

Halo teman-teman, sang pelajar database masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia penyambungan database. Jangan khawatir jika Anda belum pernah menulis satu baris kode sebelumnya - saya akan menjadi panduan ramah Anda, dan kita akan menangani topik ini langkah demi langkah. Pada akhir panduan ini, Anda akan dapat menyambung tabel seperti seorang ahli!

DBMS - Database Joins

Apa Itu Penyambungan Database?

Sebelum kita mendalami jenis penyambungan yang berbeda, mari kita pahami apa sebenarnya penyambungan. Bayangkan Anda memiliki dua daftar terpisah: satu dengan nama murid dan warna kesukaannya, dan yang lainnya dengan nama murid dan nilai mereka. Penyambungan adalah seperti lem魔法 yang menggabungkan daftar ini berdasarkan elemen umum (dalam hal ini, nama murid) untuk memberikan Anda pandangan yang lebih komprehensif tentang data.

Sekarang, mari kita eksplor jenis penyambungan yang berbeda!

Penyambungan Theta (θ)

Penyambungan Theta adalah seperti kakek bijaksana dari semua penyambungan. Itu sangat fleksibel dan memungkinkan kita untuk menggabungkan tabel berdasarkan kondisi apa pun yang kita tentukan. Simbol θ (theta) dalam namanya mewakili kondisi ini.

mari kita lihat contoh:

SELECT *
FROM Students S, Grades G
WHERE S.StudentID = G.StudentID AND S.Age > 18

Dalam contoh ini, kita menyambung tabel Students dengan tabel Grades berdasarkan dua kondisi:

  1. StudentID di kedua tabel harus cocok
  2. Umur murid harus lebih dari 18

Penyambungan ini akan memberikan hasil yang mencakup semua kolom dari kedua tabel, tapi hanya untuk murid di atas 18 tahun.

Equijoin

Equijoin adalah kasus khusus dari Penyambungan Theta di mana kondisi selalu adalah perbandingan kesetaraan. Itu seperti mengatakan, "Hanya sambung tabel ini dimana kolom ini cocok persis."

Ini adalah contohnya:

SELECT S.Name, G.Subject, G.Grade
FROM Students S, Grades G
WHERE S.StudentID = G.StudentID

Query ini akan memberikan kita daftar nama murid, mata pelajaran, dan nilai, tapi hanya dimana StudentID cocok di kedua tabel.

Penyambungan Natural (⋈)

Penyambungan Natural adalah seperti teman terbaik dari pemrogramer malas. Itu secara otomatis menyambung tabel berdasarkan kolom dengan nama yang sama. Itu praktis, tapi hati-hati - kadang-kadang itu bisa memberikan hasil yang tak terduga jika Anda tidak sadar semua nama kolom Anda!

Ini adalah penampakannya:

SELECT *
FROM Students NATURAL JOIN Grades

Ini akan menyambung tabel Students dan Grades berdasarkan semua kolom yang mereka punyai bersama (mungkin StudentID dalam kasus ini).

Penyambungan Luar

Sekarang, mari kita bicarakan Penyambungan Luar. Ini sangat berguna saat Anda ingin menjaga semua catatan dari salah satu atau kedua tabel, bahkan jika tidak ada kesamaan di tabel lain. Ada tiga jenis penyambungan luar:

Penyambungan Luar Kiri (R ⟕ S)

Penyambungan Luar Kiri menjaga semua catatan dari tabel kiri (R), bahkan jika tidak ada kesamaan di tabel kanan (S).

Contoh:

SELECT S.Name, G.Subject, G.Grade
FROM Students S LEFT OUTER JOIN Grades G
ON S.StudentID = G.StudentID

Query ini akan mencantumkan semua murid, bahkan mereka yang belum memiliki nilai yang tercatat.

Penyambungan Luar Kanan (R ⟖ S)

Penyambungan Luar Kanan adalah kebalikan dari Penyambungan Luar Kiri. Itu menjaga semua catatan dari tabel kanan (S), bahkan jika tidak ada kesamaan di tabel kiri (R).

Contoh:

SELECT S.Name, G.Subject, G.Grade
FROM Students S RIGHT OUTER JOIN Grades G
ON S.StudentID = G.StudentID

Query ini akan mencantumkan semua nilai, bahkan untuk murid yang mungkin telah dihapus dari tabel Students.

Penyambungan Luar Penuh (R ⟗ S)

Penyambungan Luar Penuh adalah seperti mengatakan, "Saya ingin segalanya!" Itu menjaga semua catatan dari kedua tabel, tanpa memperhatikan apakah ada kesamaan atau tidak.

Contoh:

SELECT S.Name, G.Subject, G.Grade
FROM Students S FULL OUTER JOIN Grades G
ON S.StudentID = G.StudentID

Query ini akan memberikan kita semua murid dan semua nilai, bahkan jika seorang murid tidak memiliki nilai atau nilai tidak memiliki murid yang sesuai.

Perbandingan Jenis Penyambungan

Untuk membantu Anda ingat semua penyambungan ini, mari kita masukkan mereka dalam tabel praktis:

Jenis Penyambungan Deskripsi Menjaga Catatan Tak Cocok Dari
Penyambungan Theta Penyambungan berdasarkan kondisi apa pun Tidak ada tabel
Equijoin Penyambungan berdasarkan kesetaraan Tidak ada tabel
Penyambungan Natural Secara otomatis menyambung berdasarkan kolom umum Tidak ada tabel
Penyambungan Luar Kiri Menjaga semua catatan dari tabel kiri Tabel kiri
Penyambungan Luar Kanan Menjaga semua catatan dari tabel kanan Tabel kanan
Penyambungan Luar Penuh Menjaga semua catatan dari kedua tabel Kedua tabel

Dan begitulah! Anda telah mengambil langkah pertama ke dunia penyambungan database. Ingat, latihan membuatah! Jangan khawatir untuk mencoba jenis penyambungan ini di dataset Anda sendiri.

Seperti belajar menunggang sepeda, mungkin itu akan merasa agak goncang pada awalnya, tapi segera Anda akan dapat mengelus data Anda dengan mudah. Dan siapa tahu? Mungkin suatu hari Anda akan menjadi yang mengajarkan orang lain tentang keajaiban penyambungan database!

Terus coding, terus belajar, dan yang paling penting, bersenang-senang dengan petualangan data Anda!

Credits: Image by storyset