SQL Server’da Primary Key ve Unique Key Arasındaki Farklar
Herkese merhaba,
Bu yazıda SQL Server’da Primary Key ve Unique Key arasındaki farkları inceleyeceğiz.
SQL Server’da Primary Key ve Unique Key kısaca anahtar alanlardır. Tanımlandığı sütunlar üzerinde benzersizlik sağlarlar yani yinelenen değerleri önlerler.
PRIMARY KEY
Null değer kullanılmasına izin vermez. Primary Key = Unique Key + Not Null Constraint
Default olarak bir clustered index ekler.
Limit
Bir tablo yalnızca bir tane Primary Key alanına sahip olabilir.
Kod Sözdizimi
Bir tablo oluşturulurken sütunun Primary Key olarak tanımlanması işlemi aşağıda örnek olarak yapılmıştır.
CREATE TABLE dbo.Musteri (
MusteriId INT NOT NULL PRIMARY KEY
,Adi VARCHAR(100)
,Soyadi VARCHAR(100)
,Sehir VARCHAR(50)
)
Birden fazla sütunun Primary Key olarak tanımlanması işlemi aşağıda örnek olarak yapılmıştır.
CREATE TABLE dbo.Musteri (
MusteriId INT NOT NULL
,Adi VARCHAR(100) NOT NULL
,Soyadı VARCHAR(100)
,Sehir VARCHAR(50)
,CONSTRAINT PK_Musteri PRIMARY KEY (MusteriId, Adi)
)
Alter Sözdizimi
Varolan bir tabloya ait bir sütunda Primary Key tanımlaması yoksa bu alana Primary Key ekleme sözdizimi aşağıdaki gibidir.
ALTER TABLE dbo.Musteri
ADD CONSTRAINT PK_Musteri PRIMARY KEY (MusteriId)
Drop Sözdizimi
Primary Key alanını drop etme sözdizimi aşağıdaki gibidir.
ALTER TABLE dbo.Musteri
DROP CONSTRAINT PK_Musteri
UNIQUE KEY
Null
Null değerler kullanılmasına izin verir.
Index
Default olarak Unique non-clustered index ekler.
Limit
Bir tablo birden fazla Unique alanına sahip olabilir.
Bir tablo oluşturulurken sütunun Unique Key olarak tanımlanması işlemi aşağıda örnek olarak yapılmıştır.
CREATE TABLE dbo.Musteri (
MusteriId INT NOT NULL UNIQUE
,Adi VARCHAR(100)
,Soyadi VARCHAR(100)
,Sehir VARCHAR(50)
)
Birden fazla sütunun Unique Key olarak tanımlanması işlemi aşağıda örnek olarak yapılmıştır.
CREATE TABLE dbo.Musteri (
MusteriId INT NOT NULL
,Adi VARCHAR(100) NOT NULL
,Soyadi VARCHAR(100)
,Sehir VARCHAR(50)
,CONSTRAINT UK_Musteri UNIQUE (MusteriId, Adi)
)
Alter Sözdizimi
Varolan bir tabloya ait bir sütunda Unique Key tanımlaması yoksa bu alana Unique Key ekleme sözdizimi aşağıdaki gibidir.
ALTER TABLE dbo.Musteri
ADD CONSTRAINT UK_Musteri UNIQUE (MusteriId)
Drop Sözdizimi
Unique Key ekleme sözdizimi aşağıdaki gibidir.
ALTER TABLE dbo.Musteri
DROP CONSTRAINT UK_Musteri
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.