SQL'de Primary Key Kullanımı

  • Primary Key ile veritabanımızdaki tablolarda, primary key atanmış olan sütun (kolon) ile birlikte eşsiz şekilde verilere sahip satırlar oluşturabiliriz. 
  • Primary Key olan alanlar Null değerler olamaz ve bu bölüme aynı değerler girilemez. 
  • Tablolarımızda mutlaka Primary Key kullanmak çok büyük avantaj sağlayacaktır.
  • Primary Key (Birincil Anahtar) genelde otomatik artan değerler olarak kullanılır. Bu otomatik artma da identity komutu ile gerçekleştirilir. 
  • Primary Key tanımlamak aslında bir nevi Constraint‘tir yani bir nevi kısıtlama yapmaktır.
  • Bir tabloda sadece bir Primary Key bulunur ama bununla birlikte tabloda birden fazla kolon için bileşik anahtar yani composite key oluşturulabilir. 
  • Eğer primary key bir composite key yani bileşik anahtar ise, tüm değerlerin kombinasyonu unique yani eşsiz olmalıdır. 
Daha basitce açıklamak gerekirse örneğin bir HBYS veritabanında Hastalar tablomuz mevcut, oldukca çok veri içeren bir tablo. Aynı ad ve soyada sahip birçok kişi var. Şimdi bu verileri en basit şekilde nasıl birbirlerinden ayırt ederiz. TC Kimlik No, aynı TC Kimlik Numarasının ikinci bir kişide olması mümkün değildir. Veritabanımızda TC Kimlik No alanını Primary Key olarak tanımlayarak eşsiz veriler oluşturabiliriz. Primary Key tablomuzdaki kayıtları sütün aracılığıyla eşşiz kayıt haline getirmemizi sağlayacaktır.

Yeni bir Alanda Primary Key Kullanımı:
CREATE TABLE Yazarlar
(
id int NOT NULL PRIMARY KEY,
adi_soyadi varchar(20) ,
Yayinevi varchar(20)
)

Yeni birden fazla Alanda Primary Key Kullanımı:
CREATE TABLE Yazarlar
(
id int NOT NULL,
adi_soyadi varchar(20) NOT NULL ,
Yayinevi varchar(20),
CONSTRAINT id_no PRIMARY KEY  (id,adi_soyadi)
)

Varolan bir Alanda Primary Key Kullanımı:
ALTER TABLE Yazarlar
ADD PRIMARY KEY (id)

Varolan birden fazla Alanda Primary Key Kullanımı:
ALTER TABLE Yazarlar
ADD CONSTRAINT  id_no PRIMARY KEY (id,adi_soyadi)

NOT: ALTER ile sonradan bir alana PRIMARY KEY kriteri tanımlanırken ilgili alanda veya alanlarda NULL yani boş kayıt olmamalıdır.

PRIMARY KEY yapısını kaldırmak:
ALTER TABLE Yazarlar
DROP CONSTRAINT id_no

NOT: Birden fazla alanda PRIMARY KEY işlemi yaptıysak, CONSTRAINT ifadesinden sonra tablomuzdaki alan adı değil, oluşturduğumuz index adı yazılmalıdır.