ms sql primary key etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ms sql primary key etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PRIMARY KEY ile tablomuzdaki ilgili alanda benzersiz kayıtların tutulmasını istediğimiz durumlarda kullanılır. Yapısal olarak UNIQUE ile karıştırılabilir. Aradaki farkları sıralayacak olursak:

- Birden fazla alan tek bir PRIMARY KEY ile tanımlanabilir. Ancak PRIMARY KEY yapısı her tabloda sadece bir tane olabilir. UNIQUE yapısı bir tabloda birden fazla olabilir.
- PRIMARY KEY yapısı ile boş kayıtlara izin verilmez. UNIQUE yapısında boş kayıtlara izi n verilir.
- PRIMARY KEY yapısı ile tablo üzerinde bir index tanımı oluşturulur her kaydın benzersiz bir tanımı yapılır. Böylece kullandığınız uygulama geliştirme ortamında (Ör: .NET) tablo üzerinde daha etkin sonuçlar elde edilebilir. UNIQUE yapısında ise alandaki değerlerin benzersiz olup olmadığına bakılır. Birden fazla alanda UNIQUE yapıldığında bunları bir index adıyla tanımlanmaı sağlaabilir ancak bu sadece bir tanımladır.

PRIMARY KEY Kullanım Biçimi

SQL Server / Oracle / MS Acess ortamlarında sadece bir alanda kullanım biçimine örnek:

CREATE TABLE Personel
(
id int NOT NULL PRIMARY KEY,
adi_soyadi varchar(20) ,
Sehir varchar(20)
)
PRIMARY KEY kriterini sadece bir alana vereceksek nasıl kullanılacağı gösterilmiştir.
MySQL ortamında sadece bir alanda kullanım biçimine örnek:
CREATE TABLE Personel
(
id int NOT NULL,
adi_soyadi varchar(20) ,
Sehir varchar(20),
PRIMARY KEY (id)

)
Görüldüğü gibi MySQL veritabanında işlem yapacaksanız PRIMARY KEY ifadesini sonradan belirtmeniz gerekmektedir.

MySQL / SQL Server / Oracle / MS Acess ortamlarında birden fazla alanda kullanım biçimine örnek:
CREATE TABLE Personel
(
id int NOT NULL,
adi_soyadi varchar(20) NOT NULL ,
Sehir varchar(20),
CONSTRAINT id_no PRIMARY KEY  (id,adi_soyadi)

)
Burada görüleceği üzere birden fazla alan PRIMARY KEY yapısı içine alınıyor. CONSTRAINT ifadesi ile bu işleme bir tanım giriliyor. Aslında bu tanım bizim tablomuzun index alanını oluşturmaktadır. İndexleme sayesinde tablomuzdaki verilerin bütülüğü daha sağlam olurken aramalarda da daha hızlı sonuçlar elde ederiz. Ayrıca kullandığınz uygulama geliştirme ortamlarında (ör .Net) tablo üzerinde daha etkin kullanım imkanınız olacaktır. PRIMARY KEY ifadesinden sonra ise ilgili alanları virgül ile ayırarak yazarız.

Yuakrıdaki örnekler hep yeni bir veritabanı oluşturuken kullanılan örneklerdir. Ancak var olan bir veritabanında bir alanı UNIQUE yapmak istersek ALTER yapısını kullanmamız gerekir.
 
MySQL / SQL Server / Oracle / MS Acess ortamlarında bir alanda kullanım biçimine örnek:
ALTER TABLE Personel
ADD PRIMARY KEY (id)
MySQL / SQL Server / Oracle / MS Acess ortamlarında birden fazla alanda kullanım biçimine örnek:
ALTER TABLE Personel
ADD CONSTRAINT  id_no PRIMARY KEY (id,adi_soyadi)
Burada dikkat edilecek nokta; ALTER ile sonradan bir alana PRIMARY KEY kriteri tanımlanırken ilgili alanda veya alanlarda NULL yani boş kayıt olmamalıdır.


Eğer PRIMARY KEY olarak kriterlendirilmiş alanı normale çevirmek istersek DROP ifadesini kullanmamız gerekir.
 SQL Server / Oracle / MS Acess ortamlarında PRIMARY KEY yapısını kaldırmak:
ALTER TABLE Personel
DROP  CONSTRAINT id_no
Burada dikkat edilmesi gereken nokta eğer çoklu alanda PRIMARY KEY işlemi yaptıysak, CONSTRAINT ifadesinden sonra tablomuzdaki alan adı değil, oluşturduğumuz index adı yazılmalıdır. Eğer tek bir alanda oluşturduysak o zaman CONSTRAINT  ifadesinden sonra sadece alana adını yazabiliriz.
MySQL ortamlarında UNIQUE yapısını kaldırmak:
ALTER TABLE Personel
DROP  PRIMARY KEY id_no

MySQL yapısından silerken tek fark direk olarak PRIMARY KEY ifadesi kullanılır.

SQL PRIMARY KEY Kullanımı(SQL Birincil Anahtar)