SQL Foreign Key - TeachMeSoft

SQL Foreign Key












Batasan SQL FOREIGN KEY

A FOREIGN KEY adalah kunci yang digunakan untuk menghubungkan dua tabel bersama-sama.

KUNCI ASING adalah bidang (atau kumpulan bidang) dalam satu tabel yang merujuk ke PRIMARY KEY di tabel lain.

Tabel yang berisi kunci asing disebut tabel anak, dan tabel yang berisi kunci kandidat disebut tabel referensi atau induk.

Lihat dua tabel berikut:

Tabel "Orang":

PersonIDLastNameFirstNameAge
1HansenOla30
2SvendsonTove23
3PettersenKari20

Tabel "pesanan":

OrderIDOrderNumberPersonID
1778953
2446783
3224562
4245621

Perhatikan bahwa kolom "PersonID" di tabel "Pesanan" mengarah ke kolom "PersonID" di tabel "Orang".

Kolom "PersonID" dalam tabel "Persons" adalah KUNCI UTAMA dalam tabel "Persons".

Kolom "PersonID" di tabel "Pesanan" adalah KUNCI ASING di tabel "Pesanan".

Batasan FOREIGN KEY digunakan untuk mencegah tindakan yang akan merusak link antar tabel.

Batasan FOREIGN KEY juga mencegah data yang tidak valid dimasukkan ke dalam 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 "Pesanan" dibuat:

MySQL:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber 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,
    OrderNumber int NOT NULL,
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

Untuk mengizinkan penamaan batasan FOREIGN KEY, dan untuk menentukan batasan FOREIGN KEY pada beberapa kolom, gunakan sintaks SQL berikut:

Akses MySQL / SQL Server / Oracle / MS:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber 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 batasan KUNCI ASING pada kolom "PersonID" ketika tabel "Pesanan" 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 batasan FOREIGN KEY, dan untuk menentukan batasan 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);

TETAPKAN Batasan KUNCI ASING

Untuk menjatuhkan batasan 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;






















Disqus comments