Section Artikel
Constraint SQL FOREIGN KEY
Constraint FOREIGN KEY adalah kunci yang digunakan untuk menghubungkan dua tabel bersama-sama.
Constraint FOREIGN KEY adalah field(atau kumpulan field) dalam satu tabel yang merujuk ke PRIMARY KEY di tabel lain.
Tabel yang berisi foreign key disebut child table dan tabel yang berisi kunci kandidat disebut tabel referensi atau induk.
Lihat dua tabel berikut:
Tabel “Person”:
PersonID | LastName | FirstName | Usia |
---|---|---|---|
1 | Hansen | Ola | 30 |
2 | Svendson | Tove | 23 |
3 | Pettersen | Kari | 20 |
Tabel “Order”:
OrderID | NomorPesanan | PersonID |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
Perhatikan pada kolom “PersonID” di tabel “Order” mengarah ke kolom “PersonID” di tabel “Person”.
Kolom “PersonID” dalam tabel “Persons” adalah PRIMARY KEY dalam tabel “Person”.
Kolom “PersonID” di tabel “ORDER” adalah FOREIGN KEY di tabel “Order”.
Constraint FOREIGN KEY dapat digunakan untuk mencegah tindakan yang akan merusak link antar tabel.
Constraint FOREIGN KEY juga mencegah data yang tidak valid disisipkan ke kolom kunci asing, karena harus menjadi salah satu nilai yang terdapat dalam tabel yang ditunjuknya.
SQL FOREIGN KEY di CREATE TABLE
SQL berikut membuat FOREIGN KEY di kolom “PersonID” ketika tabel “Order” dibuat:
MySQL:
CREATE TABLE Orders ( OrderID int NOT NULL, NomorPesanan int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) );
Akses SQL Server / Oracle / MS:
CREATE TABLE Orders ( OrderID int NOT NULL PRIMARY KEY, NomorPesanan int NOT NULL, PersonID int FOREIGN KEY REFERENCES Persons(PersonID) );
Untuk dapat melakukan penamaan constraint FOREIGN KEY dan untuk menentukan constraint FOREIGN KEY pada beberapa kolom, gunakan sintaks SQL berikut:
Akses MySQL / SQL Server / Oracle / MS:
CREATE TABLE Orders ( OrderID int NOT NULL, NomorPesanan int NOT NULL, PersonID int, PRIMARY KEY (OrderID), CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) );
SQL FOREIGN KEY di ALTER TABLE
Untuk membuat constraint FOREIGN KEY pada kolom “PersonID” ketika tabel “Order” sudah dibuat, gunakan SQL berikut ini:
Akses MySQL / SQL Server / Oracle / MS:
ALTER TABLE Orders ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
Untuk mengizinkan penamaan constraint FOREIGN KEY dan untuk menentukan constraint FOREIGN KEY pada beberapa kolom, gunakan sintaks SQL berikut:
Akses MySQL / SQL Server / Oracle / MS:
ALTER TABLE Orders ADD CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
SQL FOREIGN KEY di DROP TABLE
Untuk menghapus constraint FOREIGN KEY, gunakan SQL berikut ini:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY FK_PersonOrder;
Akses SQL Server / Oracle / MS:
ALTER TABLE Orders DROP CONSTRAINT FK_PersonOrder;