Membangun Relasi Antar Tabel Database Mysql Dengan Foreign Key
Thursday, May 24, 2018
Add Comment
Setelah di tutorial sebelumnya dijelaskan ilustrasi wacana penggunaan foreign key pada tabel film, kini saya mencoba menuliskan implementasinya.
Implementasi foreign key yang akan saya lakukan terlihat menyerupai topologi tabel di bawah ini:
Maka langkah pertama saya akan menciptakan tabel-tabel yang menampung data acuan (tabel kategori dan tabel rak) terlebih dahulu gres menciptakan tabel data utama (tabel film) melalui langkah-langkah di bawah:
Saya masuk ke dalam shell MySQL Server dengan perintah:
mysql -u root -p
kemudian saya memakai database berguru dengan perintah:
use belajar;
kemudian saya buat tabel kategori dengan perintah:
CREATE TABLE kategori ( id int PRIMARY Key AUTO_INCREMENT, nama varchar(15) );
kemudian saya akan buat tabel rak dengan perintah:
CREATE TABLE rak ( id int PRIMARY Key AUTO_INCREMENT, nama varchar(15) );
dan yang terakhir saya akan buat tabel film dengan perintah:
CREATE TABLE film ( id int(11) NOT NULL AUTO_INCREMENT, nama varchar(50) NOT NULL, id_rak int(11) NOT NULL, id_kategori int(11) NOT NULL, PRIMARY KEY (`id`), KEY id_rak (`id_rak`), KEY id_kategori (`id_kategori`), CONSTRAINT id_kategori FOREIGN KEY (`id_kategori`) REFERENCES `kategori` (`id`), CONSTRAINT id_rak FOREIGN KEY (`id_rak`) REFERENCES `rak` (`id`) );
sesudah itu saya coba memasukkan data ke dalam tabel kategori dengan query menyerupai berikut:
INSERT INTO kategori VALUES (NULL, 'fiksi'), (NULL, 'drama'), (NULL, 'horor'), (NULL, 'komedi'), (NULL, 'action');
maka kesannya saat saya menjalankan query SELECT di tabel kategori:
SELECT * FROM kategori;
kesannya menyerupai berikut:
kemudian saya juga memasukkan data ke dalam tabel rak dengan query berikut:
INSERT INTO rak VALUES (NULL, 'abc'), (NULL, 'def'), (NULL, 'ghi'), (NULL, 'jkl');
maka kesannya saat saya menjalankan query SELECT di tabel rak:
SELECT * FROM rak;
kesannya menyerupai berikut:
sesudah itu saya akan memasukkan data ke dalam tabel utama (tabel film) dengan query berikut:
INSERT INTO film VALUES (NULL, 'Captain America', 1, 1);
maka kesannya saat saya menjalankan query SELECT di tabel film:
SELECT * FROM film;
kesannya menyerupai berikut:
kemudian saya akan mencoba memasukkan data di tabel film menyerupai berikut:
INSERT INTO film VALUES (NULL, 'Iron Man', 5, 1);
maka kesannya error dengan output berikut:
hal ini dikarenakan id_rak yang bernilai 5 yang saya masukkan belum tersimpan di dalam tabel rak. Sehingga kalau saya masukkan nilai 5 di dalam tabel rak, error tersebut tidak akan terjadi dan data film "Iron Man" akan tersimpan di dalam tabel film.
Berikut pembuktiannya:
saya memasukkan terlebih dahulu id 5 di tabel rak dengan query berikut:
INSERT INTO rak VALUES (5, 'mno');
kemudian saya jalankan lagi query:
INSERT INTO film VALUES (NULL, 'Iron Man', 5, 1);
dan untuk melihat kesannya saya jalankan kembali query:
SELECT * FROM film;
maka kesannya adalah:
data film Iron Man dengan nomer Rak 5 sudah tersimpan di dalam tabel film.
Hal ini juga berlaku saat memasukkan data di dalam kolom kategori.
Server akan mengecek dahulu apakah data yang akan dimasukkan ke dalam kolom id_kategori di tabel film sudah tersimpan terlebih dahulu di tabel kategori?
Jika benar sudah ada di tabel kategori, barulah kemudian kanal penyimpanan data yang akan dimasukkan ke tabel film diperbolehkan.
Sekarang anda sudah tahu bukan, fungsi FOREIGN KEY di MySQL? Foreign Key membatasi data yang akan disimpan pada suatu tabel dengan merujuk suatu data yang telah tersimpan sebelumnya dari tabel lainnya.
Hal ini juga berlaku saat memasukkan data di dalam kolom kategori.
Server akan mengecek dahulu apakah data yang akan dimasukkan ke dalam kolom id_kategori di tabel film sudah tersimpan terlebih dahulu di tabel kategori?
Jika benar sudah ada di tabel kategori, barulah kemudian kanal penyimpanan data yang akan dimasukkan ke tabel film diperbolehkan.
Sekarang anda sudah tahu bukan, fungsi FOREIGN KEY di MySQL? Foreign Key membatasi data yang akan disimpan pada suatu tabel dengan merujuk suatu data yang telah tersimpan sebelumnya dari tabel lainnya.
0 Response to "Membangun Relasi Antar Tabel Database Mysql Dengan Foreign Key"
Post a Comment
Blog ini merupakan Blog Dofollow, karena beberapa alasan tertentu, sobat bisa mencari backlink di blog ini dengan syarat :
1. Tidak mengandung SARA
2. Komentar SPAM dan JUNK akan dihapus
3. Tidak diperbolehkan menyertakan link aktif
4. Berkomentar dengan format (Name/URL)
NB: Jika ingin menuliskan kode pada komentar harap gunakan Tool untuk mengkonversi kode tersebut agar kode bisa muncul dan jelas atau gunakan tool dibawah "Konversi Kode di Sini!".
Klik subscribe by email agar Anda segera tahu balasan komentar Anda