Tablolarda Primary ve Foreign Key Kullanımı

March 25, 2018 Berkay Gülyaz 0 Comments

Hepinize merhaba arkadaşlar. Bugün tablolarda bir kolonu benzersiz kılma ve tabloları birbirine bağlamayı göstereceğim. İlk önce kolonu benzersiz kılmayı yani Primary Key‘i anlatayım. Şimdi şöyle düşünün. Hepimizin bir Türkiye Cumhuriyeti Kimlik Numarası var değil mi? Peki bizim kimlik numaramız başka birisinin kimlik numarasıyla aynı olabilir mi? Hayır olamaz. Yani kimlik numaramız bize özeldir, benzersizdir. İşte Primary Key’de bunun içindir. Yani kolonun benzersiz olduğunu belirtmek için kullanılır. Genellikle tablolarda kolon adı olarak Id kullanırız. Id ise kullanıcının kimlik numarası anlamına gelir. Ufak bir örnekle uygulamalı olarak göstereyim.

İlk önce bir veritabanı oluşturalım.

Create database CompanyDb

Sonra oluşturduğumuz veritabanına ulaşalım.

Use CompanyDb

Şimdi oluşturduğum veritabanının mantığını anlatayım. Bir şirketimiz olacak ve bu şirkete bağlı çalışanlar olacak çalışanlar olacak.

Create Table Company(
	Id int,
	Name nvarchar(50) Not Null,
	Adress nvarchar(100) Not Null,
	Phone nvarchar(11) Not Null,
)

Tablo bu şekilde. Şimdi ufak bir detaydan bahsedeyim öncelikle. Gördüğünüz gibi kolonların yanında “Not Null” yazıyor. Yani boş geçilemez. Bir kolona Not Null yazarsanız o kolona kesinlikle ama kesinlikle bir değer girilmesi gerekmektedir aksi halde hata alacaksınızdır. Peki ben değer girmek istemiyorsam ne olacak? O zaman bir şey yazmanıza gerek yok. Varsayılan olarak null değerini atayacaktır program.

Şimdi artık Primary Key nasıl yapılır onu göstereyim.

Create Table Company(
	Id int,
	Name nvarchar(50) Not Null,
	Adress nvarchar(100) Not Null,
	Phone nvarchar(11) Not Null,
	Constraint PK_CompanyId Primary Key(Id)
)

Kodu açıklayayım. İlk önce Primary Key’imize bir ad veriyoruz(PK_CompanyId). Daha sonrasında ise Id’nin bir Primary Key olduğunu belirtiyoruz. Şimdi tablonun tamamını seçip execute edin ve sol tarafta bulunan “Object Explorer” sekmesinde bulunan “Databases” klasörünün altındaki CompanyDb veritabanımıza iki kere tıklayalım. Açılan veritabanımızdan “Company” tablomuza çift tıklayıp altında açılan “Column” klasörüne de çift tıklayalım. Evet gördüğünüz gibi Id yazısının yanında anahtar var. İşte bu anahtar Primary Key olduğunu gösteriyor.

Şimdi gelelim tabloları birbirine bağlamaya. Yani “Foreign Key”. Şimdi önce Employees(çalışanlar) tablomuzu tasarlayıp Primary Key’ini verelim.

Create Table Employees(
	EmployeeId int,
	FirstName nvarchar(30),
	LastName nvarchar(30),
	Phone nvarchar(11),
	Adress nvarchar(100),
	BirthDate datetime,
	Constraint PK_EId Primary Key(EmployeeId),
)

Foreign Key‘i şöyle açıklayayım. Veritabanımızla alakalı olarak bir firmada işçi olduğunuzu düşünün. Her sabah o firmanın bulunduğu binaya ya da plazaya girebilmek için turnikelere kart okutursunuz. O kartın üzerine baktığınızda ise adınızı, soyadınızı, fotoğrafınızı ve çalıştığınız firmanın logosunu görürsünüz. Yani bu ne demek oluyor? Siz o firmaya bağlısınız. İşte Foreign Key’de bunu belirtir.

Create Table Employees(
	EmployeeId int,
	FirstName nvarchar(30),
	LastName nvarchar(30),
	Phone nvarchar(11),
	Adress nvarchar(100),
	BirthDate datetime,
	Id int,/*!!!!!!*/
	Constraint PK_EId Primary Key(EmployeeId),
	Constraint FK_CId Foreign Key(Id) References Company(Id),
)

İlk önce Company tablosunun Id’sini Employees tablosuna çektik(Yanında ünlem işareti koydum). Yani dedik ki Employees tablosu Company tablosuna bağlıdır. Daha sonra Constraint ile kısıtlayıp Foreign Key’e bir ad verdik(FK_CId). Sonra Company tablosundan Id’yi referans alacağımızı belirtip Employees tablosunu Company tablosunun Id’sine bağladık.

Tabloyu execute edip yine aynı işlemleri yapalım. Eployess tablosundaki columns klasörüne baktığınızda en altta Id yazdığını göreceksiniz ve onun da yanında beyaz bir anahtar olduğunu göreceksiniz. Parantez içerisinde de “FK” yazıyor. Yani Foreign Key olduğunu belirtiyor.

Hepinize iyi çalışmalar 🙂

Leave a Reply:

Your email address will not be published. Required fields are marked *