Home » SQL » Constraint FOREIGN KEY SQL : Syntax dan Contohnya

Constraint FOREIGN KEY SQL : Syntax dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

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”:

PersonIDLastNameFirstNameUsia
1HansenOla30
2SvendsonTove23
3PettersenKari20

Tabel “Order”:

OrderIDNomorPesananPersonID
1778953
2446783
3224562
4245621

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;

You may also like