Primary Key Nedir ?

Primary Key

Bugün ki yazımızda Primary Key konusunu ele alacağız. Primary Key tablolarımızda tanımladığımız bir anahtardır. Tabloda eşsizlik sağlar yani key yaptığımız sütunda tekrar eden değerler olamaz. Genel olarak ID olarak tuttuğumuz sütunları Primary Key yapmamız en sağlıklısıdır. Primary Key’ler Foreign Key’ler ile bağlantı sağlar. Foreign Key konusunu diğer yazımızda ele alacağız. Key oluşturduğumuz zaman otomatik olarak o sütuna ait Clustered Index oluşur. Index’ler bizim için çok önemlidir. Milyonlarca veri arasından saniyede kayıt çekmemiz için ihtiyacımız olan yapıdır. İlerleyen zamanlarda detaylı anlatacağız. Şimdi örneklerimize başlayalım.

İlk olarak User tablosu oluşturuyoruz ve ID alanına Primary Key’i tanımlıyoruz.

CREATE TABLE dbo.[User]
	(
	Id int NOT NULL,
	Name nchar(10) NULL,
	Surname nchar(10) NULL
	)  ON [PRIMARY]
GO
ALTER TABLE dbo.[User] ADD CONSTRAINT
	PK_User_1 PRIMARY KEY CLUSTERED 
	(
	Id
	) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

Primary Key

Tablomuzu design ekranında oluştrabilirsiniz. Primary Key için tek yapmanız gereken ID satırına sağ tıklatıp Primary Key’i seçmeniz gerekmektedir. Şimdi tablomuza kayıt ekleyelim.

INSERT INTO dbo.[USER] VALUES (1,'Ad','Soyad')

(1 row affected)

Başarılı bir şekilde kayıdımız eklenmiş olduğunu göreceksiniz. Ama biz aynı kaydı tekrar eklemeye çalışırsak ne olacak ? Aynı kaydı tekrar ekliyoruz.

INSERT dbo.[USER] VALUES (1,'Ad','Soyad')

Violation of Primary Key constraint ‘PK_User_1’. Cannot insert duplicate key in object ‘dbo.User’. The duplicate key value is (1).
The statement has been terminated.

Primary Key olduğu için ID’si aynı olan kayıtı ekleyemedik. ID değerimizi değiştirip tekrar eklemeye çalışalım.

INSERT INTO dbo.[USER] VALUES (2,'Ad','Soyad')

(1 row affected)

ID değerimizi değiştirdik ve kaydımız başarı ile eklendi. Burada ID değerini kendimiz belirttik. Peki her kayıtta ID değerini kendimiz mi belirtcez ?

IDENTITY

Tablolar oluşturulurken ID sütunu IDENTITY olarak tanımlanır. IDENTITY belirttiğimiz değerler ile otomatik olarak ID üretir. 1’den başlayıp 1’er artış ile ID değeri üretmesini sağlayabiliriz. IDENTITY tanımladığımızda hiç bir ID değeri aynı olamayacak ve kayıt eklerken hata almayız.

PrimaryKeyNedir

Bu işlemi design ekranından yapalım. ID sütununu seçip Properties ekranından ‘Identity Specifaciton’ özelliği açmamız yeterli olacaktır. Varsayılan olarak 1’er artış ile gelmektedir. Identity özelliğini ekledikten sonra tablomuza tekrardan kayıt ekleyelim ve sonucu görelim.

INSERT INTO DBO.[User] VALUES ('AD','SOYAD')
INSERT INTO DBO.[User] VALUES ('AD','SOYAD')
INSERT INTO DBO.[User] VALUES ('AD','SOYAD')
INSERT INTO DBO.[User] VALUES ('AD','SOYAD')

SELECT * FROM DBO.[User]

Kayıt eklerken ID değerini belirtmiyoruz çünkü otomatik olarak atanmaktadır.

Primary Key Nedir

Kayıtlarımızı ekledikten sonra tablodaki tüm kayıtları sorguladık ve karşımıza böyle bir sonuç çıktı. ID değerleri otomatik olarak sırayla eklenmiş.

Bazı durumlarda birden çok sütunda Primary Key olmasını isteyebiliriz. Buna Composite Key denir. Pek kullanılmaz ama ihtiyacınız olabilir. Yazımızın sonuna geldik diğer yazılarımızda görüşmek üzere.

Referams: https://docs.microsoft.com/en-us/sql/relational-databases/tables/create-primary-keys?view=sql-server-ver15

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

Yazar

Kocaeli Üniversitesi Bilişim Sistemleri Mühendisliğini bitirip sektörde veri tabanı mühendisi olarak göreve başladım.

İlgili Yazılar

1 Yorum

[…] önceki yazımızda Primay Key konusunu ele almıştık. Bugün ki yazımızda Foreign Key konusunu ele […]

Cevapla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hızlı yorum için giriş yapın.

Başka Yazı Yok

Kayıt Ol

Zaten üye misiniz? Giriş Yap

Giriş Yap

Henüz üyeliğiniz yok mu? Kayıt Ol