Pada Basis Data Part 6, materi berfokus pada konsep relasi antar tabel dan teknik penggabungan tabel (JOIN) dalam SQL. JOIN sangat penting karena pada praktiknya data jarang disimpan dalam satu tabel saja, melainkan tersebar ke beberapa tabel yang saling berhubungan melalui key columns.
Dokumentasi ini disusun dalam format Markdown agar dapat langsung digunakan sebagai README di GitHub, serta telah dilengkapi dengan jawaban lengkap seluruh quiz sesuai modul.
Key column adalah kolom yang menjadi penghubung antar tabel karena memiliki data yang saling berelasi.
Contoh:
ms_item_warna.nama_barangms_item_kategori.nama_item
Kedua kolom tersebut memiliki banyak kecocokan nilai sehingga dapat digunakan untuk proses JOIN.
Jika dua tabel digabungkan menggunakan key column, maka hanya baris data yang memiliki nilai yang sama di kedua tabel yang akan ditampilkan.
Baris data yang tidak memiliki pasangan di tabel lain akan di-exclude.
Saat melakukan JOIN, jika terdapat nama kolom yang sama di kedua tabel, maka wajib menggunakan prefix nama tabel untuk menghindari error ambiguitas.
Contoh:
SELECT tr_penjualan.kode_produk, ms_produk.kode_produk
FROM tr_penjualan
INNER JOIN ms_produk
ON tr_penjualan.kode_produk = ms_produk.kode_produk;Jika dua tabel digabungkan tanpa kondisi, maka akan terjadi CROSS JOIN, yaitu hasil penggabungan berupa perkalian jumlah baris dari kedua tabel.
SELECT *
FROM ms_item_warna, ms_item_kategori;INNER JOIN hanya menampilkan data yang memiliki kecocokan di kedua tabel berdasarkan kondisi JOIN.
SELECT kolom
FROM tabel1
INNER JOIN tabel2
ON kondisi;Hasil INNER JOIN sama dengan penggunaan WHERE sebagai kondisi penggabungan.
Gabungkan tabel tr_penjualan dan ms_produk menggunakan dua query yang berbeda namun menghasilkan output yang sama seperti pada modul.
SELECT
tr_penjualan.kode_transaksi,
tr_penjualan.kode_produk,
ms_produk.nama_produk
FROM tr_penjualan
INNER JOIN ms_produk
ON tr_penjualan.kode_produk = ms_produk.kode_produk;SELECT
tr_penjualan.kode_transaksi,
tr_penjualan.kode_produk,
ms_produk.nama_produk
FROM tr_penjualan, ms_produk
WHERE tr_penjualan.kode_produk = ms_produk.kode_produk;Gabungkan tabel tr_penjualan dan ms_produk dengan ketentuan:
-
Dari tabel
tr_penjualantampilkan:- kode_transaksi
- kode_pelanggan
- kode_produk
- qty
-
Dari tabel
ms_produktampilkan:- nama_produk
- harga
-
Tambahkan kolom total =
harga × qty -
Urutan kolom hasil:
- kode_transaksi
- kode_pelanggan
- kode_produk
- nama_produk
- harga
- qty
- total
SELECT
tr_penjualan.kode_transaksi,
tr_penjualan.kode_pelanggan,
tr_penjualan.kode_produk,
ms_produk.nama_produk,
ms_produk.harga,
tr_penjualan.qty,
ms_produk.harga * tr_penjualan.qty AS total
FROM tr_penjualan
INNER JOIN ms_produk
ON tr_penjualan.kode_produk = ms_produk.kode_produk;Dengan memahami konsep JOIN, khususnya INNER JOIN, pengguna dapat menggabungkan data dari berbagai tabel berdasarkan relasi yang ada. Materi ini menjadi fondasi penting sebelum mempelajari jenis JOIN lain seperti LEFT JOIN, RIGHT JOIN, dan FULL JOIN.