SQL PRIMARY KEY Kullanımı
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 Access 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ı PRIMARY KEY yapmak istersek
ALTER yapısını kullanmamız gerekir.
MySQL / SQL Server / Oracle / MS Access ortamlarında bir alanda kullanım
biçimine örnek:
ALTER TABLE Personel
ADD PRIMARY KEY (id) |
MySQL / SQL Server / Oracle / MS Access 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 Access 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 PRIMARY KEY yapısını kaldırmak:
ALTER TABLE Personel
DROP PRIMARY KEY |
MySQL yapısından silerken tek fark direk olarak PRIMARY KEY ifadesi
kullanılır.
|