SQL FOREIGN KEY Nedir? Kullanımı Nasıldır? Örneklerle Anlatım
04.02.2021 21:03 16101 Görüntülendi

SQL FOREIGN KEY Nedir? Kullanımı Nasıldır? Örneklerle Anlatım

SQL Foreign Key Kısıtlaması

Veri tabanı tasarımı sırasında tablolar çeşitli parçalara ayrılarak veri tekrarının önüne geçilir. Parçalara ayrılan tabloları anlamlı bir şekilde birleştirmek için ortak bir sütun belirlenebilir. Bu sütunun belirlemek için tablolar arası Foreign key ile ilişki kurularak veri bütünlüğü korunur. Diğer bir değişle Foreign key kullanım amacı veri bütünlüğünün sağlanmasıdır.

Foreign key, içeren tabloya alt tablo adı verilir Primary Key içeren tabloya başvurulan veya üst tablo adı verilir.

Calisanlar tablosu:

CalisanID

CalisanAdi

CalisanSoyadi

Dogumgunu

1

Frank

Cesanne

1969-12-04

2

John

Smith

1970-05-18

3

Mehmet

Efe

1974-08-04

 

Siparisler tablosu:

SiparisID

SiparisNumasi

CalisanID

1

2123

3

2

5642

2

3

8542

1

4

4193

3

 

“Calisanlar” tablosunda ki “CalisanID” sütunu, “Calisanlar” tablosunun Primary Key dır. (Birincil anahtar)

“Siparisler” tablosundaki “CalisanID” sütunu, “Siparisler” tablosundaki Foreign Key dir.(Yabancı anahtar)

CREATE TABLE üzerinde SQL Foreign Key

Aşağıdaki SQL, “Siparisler” tablosu oluşturulduğunda “Calisanlar” sütununda bir Foreign key(yabancı anahtar)oluşturur.

MySQL:

CREATE TABLE Siparisler (
   SiparisID int NOT NULL,
   SiparisNumasi int NOT NULL,
   CalisanID int,
    PRIMARY KEY (SiparisID),
    FOREIGN KEY (CalisanID) REFERENCES Calisanlar(CalisanID)
);

SQL Sunucusu / Oracle / MS Erişimi:

CREATE TABLE Siparisler (
   SiparisID int NOT NULL PRIMARY KEY,
   SiparisNumasi int NOT NULL,
   CalisanID int FOREIGN KEY REFERENCES Calisanlar(CalisanID)
);

ALTER TABLE üzerinde SQL Foreign Key

“Siparisler” tablosu zaten oluşturulduğundan “Calisanlar” sütununa bir Foreign key kısıtlaması oluşturmak için Aşağıdaki SQL komutunu kullanabiliriz.

MySQL / SQL Sunucusu / Oracle / MS Erişimi:

ALTER TABLE Siparisler
ADD FOREIGN KEY (CalisanID) REFERENCES Calisanlar(CalisanID);

Bir Foreign key kısıtlamasının adlandırılmasına izin vermek ve birden çok sütunda bir Foreign key kısıtlaması tanımlamak için Aşağıdaki SQL komutu kullanılır.

MySQL / SQL Sunucusu / Oracle / MS Erişimi

ALTER TABLE Siparisler
ADD CONSTRAINT FK_KisiSiparisi
FOREIGN KEY (CalisanID) REFERENCES Calisanlar (CalisanID);

Foreign Key Kısıtlamasını Kaldırmak:

MySQL:

ALTER TABLE Siparisler
DROP FOREIGN KEY FK_ KisiSiparisi;

SQL Sunucusu / Oracle / MS Erişimi:

ALTER TABLE Siparisler
DROP CONSTRAINT FK_ KisiSiparisi;

 

İçerik: YUSUF ERDOĞAN