2. Apa itu Primary Key?
Primary Key adalah kolom unik yang berfungsi sebagai identitas dari setiap record pada tabel. Setiap tabel sebaiknya memiliki satu primary key.
3. Apa itu Foreign Key?
Foreign Key adalah kolom pada suatu tabel yang menjadi referensi dari primary key tabel lain. Dengan foreign key, hubungan antar tabel dapat dibangun.
4. Contoh Tabel MySQL
Kita akan membuat dua tabel: users
dan orders
.
-- Membuat tabel users
CREATE TABLE users (
user_id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (user_id)
);
-- Membuat tabel orders
CREATE TABLE orders (
order_id INT AUTO_INCREMENT,
user_id INT,
product_name VARCHAR(100) NOT NULL,
PRIMARY KEY (order_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
5. Query Membuat Primary Key
Pada contoh di atas, kita mendefinisikan user_id
sebagai primary key pada tabel users
dan order_id
pada tabel orders
.
6. Query Membuat Foreign Key
Kolom user_id
pada tabel orders
menjadi foreign key yang mengacu pada user_id
di tabel users
.
Query khusus untuk menambahkan foreign key:
ALTER TABLE orders
ADD CONSTRAINT fk_user
FOREIGN KEY (user_id) REFERENCES users(user_id);
7. Penjelasan Relasi Tabel
- Tabel
users
menyimpan data user. - Tabel
orders
menyimpan data pesanan. - Kolom
user_id
pada tabelorders
menjadi foreign key yang menghubungkan setiap pesanan dengan user terkait.
8. Kesimpulan
Dengan memahami cara membuat primary key foreign key MySQL, Anda dapat membangun relasi antar tabel yang lebih terstruktur. Primary key menjamin keunikan data, sedangkan foreign key menjaga integritas referensial antar tabel.
9. FAQ
Q: Apakah satu tabel bisa punya lebih dari satu primary key?
A: Tidak, satu tabel hanya boleh memiliki satu primary key, tetapi bisa terdiri dari beberapa kolom (composite key).
Q: Apa yang terjadi jika data pada tabel induk dihapus?
A: Jika foreign key diatur dengan ON DELETE CASCADE
, maka data terkait pada tabel anak juga ikut terhapus.
Q: Apakah foreign key wajib digunakan?
A: Tidak wajib, tetapi sangat disarankan untuk menjaga konsistensi data.