Tutorial SQL

SQL RUMAH Pengenalan SQL Sintaks SQL Pilih SQL SQL Pilih Berbeda SQL Dimana SQL Dan, Atau, Tidak Perintah SQL Oleh SQL Sisipkan Ke Nilai Null SQL Pembaruan SQL Hapus SQL SQL Pilih Atas SQL Min dan Maks Hitung SQL, Rata-Rata, Jumlah SQL Suka SQL Wildcard SQL In SQL Antara SQL Alias SQL Bergabung Gabung Dalam SQL SQL Kiri Gabung SQL Benar Bergabung Gabung Penuh SQL SQL Self Gabung SQL Union Grup SQL Oleh SQL Memiliki SQL Ada SQL Apa saja, Semua SQL Pilih Ke Sisipkan SQL Ke Pilih Kasus SQL Fungsi SQL Null Prosedur Tersimpan SQL Komentar SQL Operator SQL

Basis Data SQL

SQL Buat DB SQL Drop DB SQL Cadangan DB SQL Buat Tabel Tabel Jatuhkan SQL Tabel Ubah SQL Batasan SQL SQL Bukan Null SQL Unik Kunci Utama SQL Kunci Asing SQL Pemeriksaan SQL SQL Default Indeks SQL Peningkatan Otomatis SQL Tanggal SQL Tampilan SQL Injeksi SQL SQL Hosting Tipe Data SQL

Referensi SQL

Kata Kunci SQL Fungsi MySQL Fungsi SQL Server Fungsi Akses MS Referensi Cepat SQL

Contoh SQL

Contoh SQL Kuis SQL Latihan SQL Sertifikat SQL

Batasan KUNCI ASING SQL


Batasan KUNCI ASING SQL

Batasan FOREIGN KEYdigunakan untuk mencegah tindakan yang akan menghancurkan tautan antar tabel.

A FOREIGN KEYadalah bidang (atau kumpulan bidang) dalam satu tabel, yang merujuk ke PRIMARY KEYdalam tabel lain.

Tabel dengan kunci asing disebut tabel anak, dan tabel dengan kunci utama disebut tabel referensi atau tabel induk.

Perhatikan dua tabel berikut ini:

Meja Orang

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

Tabel Pesanan

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

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

Kolom "PersonID" di tabel "Orang" adalah PRIMARY KEYdi tabel "Orang".

Kolom "PersonID" di tabel "Pesanan" adalah FOREIGN KEYdi tabel "Pesanan".

Batasan FOREIGN KEYmencegah data yang tidak valid dimasukkan ke dalam kolom kunci asing, karena itu harus menjadi salah satu nilai yang terkandung dalam tabel induk.



SQL FOREIGN KEY pada CREATE TABLE

SQL berikut membuat FOREIGN KEYpada kolom "PersonID" saat 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)
);

SQL Server / Oracle / MS Access:

CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

Untuk mengizinkan penamaan FOREIGN KEYbatasan, dan untuk mendefinisikan FOREIGN KEYbatasan pada beberapa kolom, gunakan sintaks SQL berikut:

MySQL / SQL Server / Oracle / MS Access:

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 pada ALTER TABLE

Untuk membuat FOREIGN KEYbatasan pada kolom "PersonID" saat tabel "Pesanan" sudah dibuat, gunakan SQL berikut:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

Untuk mengizinkan penamaan FOREIGN KEYbatasan, dan untuk mendefinisikan FOREIGN KEYbatasan pada beberapa kolom, gunakan sintaks SQL berikut:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

JATUHKAN Hambatan KUNCI ASING

Untuk FOREIGN KEYmenghilangkan batasan, gunakan SQL berikut:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;