membuat foregn key

Contoh:

Misalkan ada dua tabel: Students dan Classes.

Tabel Classes:

class_idclass_name
1Mathematics
2Science

Tabel Students:

student_idstudent_nameclass_id
101Alice1
102Bob2

Di sini:

  • class_id di tabel Classes adalah primary key.
  • class_id di tabel Students adalah foreign key yang mengacu pada class_id di tabel Classes.

Keuntungan Foreign Key:

  • Membantu menjaga konsistensi data.
  • Mencegah data "orphan" (data yang kehilangan referensi).
  • Membuat struktur basis data lebih terorganisir.

Sintaks SQL:

Untuk mendefinisikan foreign key:

sql
CREATE TABLE Students ( student_id INT PRIMARY KEY, student_name VARCHAR(100), class_id INT, FOREIGN KEY (class_id) REFERENCES Classes(class_id) );

////////////////

1. buat dulu kolom menajdi uniq


2. Jika sudah ada tabel, Anda bisa menambahkan foreign key dengan:

sql
ALTER TABLE Students ADD CONSTRAINT fk_class FOREIGN KEY (class_id) REFERENCES Classes(class_id);

Misalkan Anda memiliki tabel Students dan Classes, dan Anda ingin menambahkan foreign key pada Students:

sql
ALTER TABLE Students ADD CONSTRAINT fk_class FOREIGN KEY (class_id) REFERENCES Classes(class_id);
  • fk_class: Nama untuk foreign key constraint.
  • FOREIGN KEY (class_id): Menunjukkan bahwa kolom class_id di tabel Students adalah foreign key.
  • REFERENCES Classes(class_id): Menunjukkan bahwa foreign key ini mengacu pada kolom class_id di tabel Classes.

Keuntungannya:

  • Pemberian Nama: Dengan nama seperti fk_class, Anda bisa lebih mudah memahami fungsi foreign key saat melihat struktur tabel atau logika basis data.
  • Kemudahan Pemeliharaan: Jika perlu menghapus constraint, Anda dapat merujuknya dengan nama tersebut.

Menghapus Constraint:

Jika Anda ingin menghapus constraint dengan nama fk_class:

sql
ALTER TABLE Students DROP CONSTRAINT fk_class;

buat dulu kolom kode pada tabel siswa menjadi unique, Jika tabel siswa dan nilai sudah ada, Anda dapat menambahkan foreign key pada tabel nilai tanpa harus membuat ulang tabel. Gunakan perintah berikut untuk menambahkan foreign key pada tabel nilai:

sql
ALTER TABLE nilai ADD CONSTRAINT fk_nilai_kode FOREIGN KEY (kode) REFERENCES siswa(kode) ON DELETE CASCADE ON UPDATE CASCADE;

Penjelasan:

  • ALTER TABLE nilai: Menambahkan perubahan pada tabel nilai.
  • ADD CONSTRAINT fk_nilai_kode: Memberi nama constraint foreign key (fk_nilai_kode).
  • FOREIGN KEY (kode) REFERENCES siswa(kode): Menghubungkan kolom kode di tabel nilai dengan kolom kode di tabel siswa.
  • ON DELETE CASCADE: Jika data pada tabel siswa dihapus, data terkait di tabel nilai juga akan dihapus.
  • ON UPDATE CASCADE: Jika nilai kode di tabel siswa diubah, maka perubahan tersebut akan diterapkan juga di tabel nilai.

Cara Mengeksekusi

  1. Jalankan perintah SQL di aplikasi database Anda (misalnya phpMyAdmin, MySQL Workbench, atau terminal SQL).

  2. Pastikan tabel nilai memiliki data konsisten (tidak ada nilai kode yang tidak ada di tabel siswa) sebelum menambahkan foreign key, atau Anda akan mendapatkan error.





Artikel Popular

Advertisement