Bu yazımızda SQL veritabanımızın tablosunda yer alan sütuna Yabancı Anahtar eklemeyi öğreneceğiz.
YABANCI ANAHTAR SQL'de veritabanındaki iki tablonun kaydını birleştirmek için kullanılır. Bir tabloda FOREIGN KEY olarak tanımlanan sütunun, aynı veritabanındaki başka bir tabloda PRIMARY KEY olması gerekir.
Sütuna yabancı anahtarı aşağıdaki iki yolla kolayca ekleyebiliriz:
- Create table deyimini kullanarak yabancı anahtar ekleme
- Alter Table deyimini kullanarak yabancı anahtar ekleme
SQL tablosundaki sütuna YABANCI ANAHTAR eklemek istiyorsanız aşağıdaki adımları verilen sırayla uygulamanız gerekir:
- Sistemde veritabanını oluşturun.
- Aynı veritabanında iki tablo oluşturun.
- Yabancı anahtar eklemeden önce Tablo yapısını görüntüleyin.
- Tabloya yabancı anahtar ekleyin.
- Tablo yapısını görüntüleyin.
Şimdi yukarıdaki adımları bir örnekle açıklayacağız:
Adım 1: Veritabanı Oluşturun
Yapılandırılmış Sorgu Dili'nde, yapılandırılmış tabloların veritabanında saklanmasının ilk adımı veritabanı oluşturmaktır.
Veritabanı oluşturmak için aşağıdaki SQL sözdizimini kullanın:
CREATE DATABASE Database_Name;
oluşturmak istediğinizi varsayalım. Araçlar veri tabanı. Bunun için Yapılandırılmış Sorgu Dili'nde aşağıdaki komutu yazmanız gerekir:
CREATE DATABASE Vehicles;
Adım 2: Veritabanında iki Tablo oluşturun
Artık veritabanınızdaki tabloları oluşturmak için aşağıdaki SQL sözdizimini kullanmanız gerekir:
CREATE TABLE table_name ( column_Name_1 data type (size of the column_1), column_Name_2 data type (size of the column_2), column_Name_3 data type (size of the column_3), ... column_Name_N data type (size of the column_1) );
Aşağıdaki SQL sorgusu şunu oluşturur: Arabalar_Detaylar masadaki Araçlar veri tabanı.
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), );
Aşağıdaki sorgu oluşturur Arabalar_Fiyat_Detaylar masadaki Araçlar veri tabanı:
CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL );
Adım 3: Yabancı Anahtar Eklemeden Önce Tablo Yapısını Görüntüleyin
Tablo oluşturma ve veri ekleme işleminden sonra SQL uygulamanıza aşağıdaki sorguyu yazarak her iki tablonun yapısını görüntüleyebilirsiniz:
DESC Cars or DESCRIBE Cars ;
Alan | Tip | HÜKÜMSÜZ | Anahtar | Varsayılan | Ekstra |
---|---|---|---|---|---|
Araba numarası | Dahili | HAYIR | AT | HÜKÜMSÜZ | otomatik artış |
Modeli | Dahili | Evet | - | HÜKÜMSÜZ | - |
Araba_Adı | Varchar(20) | Evet | - | HÜKÜMSÜZ | |
Renk | Varchar(20) | Evet | - | HÜKÜMSÜZ | - |
DESC Cars_Price_Details;
Alan | Tip | HÜKÜMSÜZ | Anahtar | Varsayılan | Ekstra |
---|---|---|---|---|---|
Araba modeli | Dahili | HAYIR | AT | HÜKÜMSÜZ | - |
Araba_Fiyat | Dahili | HAYIR | - | HÜKÜMSÜZ |
Adım 4: Tablodaki sütuna Yabancı anahtar ekleyin
Tablo oluşturma sırasında yabancı anahtarı eklemek istiyorsanız SQL'de aşağıdaki CREATE TABLE sözdizimini kullanmanız gerekir:
CREATE TABLE table_name1 ( Column_Name_1 data type (size of the column_1), Column_Name_2 data type (size of the column_2), ......, Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name) ) ;
Örnek
Aşağıdaki sorgu, Cars_Details tablosundaki 'Model' sütununa YABANCI ANAHTAR'ı ekler:
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT, Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model), Cars_Name VARCHAR (20), Color VARCHAR (20) UNIQUE, Price INT NOT NULL ) ;
SQL'deki bu sorgu birleşiyor Arabalar_Detaylar ile masa Arabalar_Fiyat_Detaylar yabancı anahtar yardımıyla tablo.
Adım 5: Yabancı Anahtar Eklemeden Sonra Tablo Yapısını Görüntüleyin
Yürütülen sorgunun sonucunu kontrol etmek için 4oadım, SQL'de aşağıdaki DESC komutunu yazmanız gerekir:
DESC Cars_Details;
Alan | Tip | HÜKÜMSÜZ | Anahtar | Varsayılan | Ekstra |
---|---|---|---|---|---|
Araba numarası | Dahili | Evet | ÖNCELİK | HÜKÜMSÜZ | otomatik artış |
Modeli | Dahili | HAYIR | YABANCI | HÜKÜMSÜZ | - |
Araba_Adı | Varchar(20) | Evet | - | HÜKÜMSÜZ | - |
Renk | Varchar(20) | Evet | - | HÜKÜMSÜZ | - |
Fiyat | Dahili | HAYIR | - | HÜKÜMSÜZ | - |
Ortalama | Dahili | HAYIR | - | 0 | - |
Yukarıdaki çıktıda gösterildiği gibi Model sütunu yabancı anahtar olarak oluşturulur.
Mevcut Tabloya Yabancı Anahtar Ekle
Yabancı anahtarı mevcut tabloya eklemek istiyorsanız SQL'de aşağıdaki ALTER sözdizimini kullanmanız gerekir:
ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name);
Aşağıdaki sorgu, Cars_Details tablosu veritabanı sisteminde zaten mevcut olduğunda Model sütununa bir YABANCI ANAHTAR ekler:
ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model);
SQL'deki bu ALTER sorgusu birleşiyor Arabalar_Detaylar ile masa Arabalar_Fiyat_Detaylar yabancı anahtar yardımıyla tablo.
Yabancı anahtarı tablodan sil
Yabancı anahtarı tablonun sütunundan silmek istiyorsanız aşağıdakileri kullanmanız gerekir: DEĞİŞTİR SQL'deki sözdizimi:
ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name;
Aşağıdaki sorgu, oluşturulan FOREIGN KEY'i Cars_Details tablosunun Model sütunundan siler:
ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;