SQL

SQL Ders26- Constraint Nedir ve Türleri

Veri üzerindeki mantıksal sınırlamalara Constraint(Kısıtlayıcı) denir. Constraint, veri modellerinde bütünlük sağlamak için kullanılır. Tabloların tanımlanmasıyla beraber oluşur. Constraint’ler tablo oluştururken yani CREATE TABLE komutuyla tanımlanabilir. Tablo oluşturulmuşsa ALTER TABLE komutuyla bu işlem gerçekleşir.

Constraint Türleri

Primary Key Constraint

Birincil anahtar kısıtlayıcı anlamındadır. Bir değerin birbirinden farklı yapıda işlemesini sağlaması amacıyla kullanırız. Her tablonun en fazla 1 adet Primary Key Constraint’i olabilir. Bir primary constraint asla NULL olamaz.

Aşağıda bir tablo oluşturulurken,yaratılan primary key constraint’i gösterilmektedir.

CREATE TABLE Kitap
(
KitapID int,
KitapAdi nchar(20),
yazar nchar(20),
tarih datetime,
CONSTRAINT PK_book PRIMARY KEY(KitapID)
)

Eğer tabloyu daha önceden oluşturmuşsanız aşağıdaki kodu kullanarak primary key constraint ekleyebilirsiniz.

ALTER TABLE Kitap
ADD CONSTRAINT PK_book PRIMARY KEY(KitapID)

Unique Constraint

Tekil alan Constraint anlamındadır. Birincil anahtara sahip olan aynı zamanda bir kolonun içindeki verilerin tekrar etmemesini sağlamak amacıyla kullanılır. Yani aynı içeriğe sahip verilerin olmaması için Unique Constraint tanımlanır. Örnek olarak verecek olursak T.C.Kimlik Numarası primary key olursa ve Okul Numarası da Unique olursa buna bir örnek olarak verilebilir.

CREATE TABLE tblKitap
(
kod int,
num int,
ad nchar(20),
CONSTRAINT pk_kod PRIMARY KEY (kod),
CONSTRAINT uk_num UNIQUE (num)

Eğer tabloyu daha önceden oluşturmuşsanız aşağıdaki ifadeyi kullanabilirsiniz.

ALTER TABLE tblKitap
ADD CONSTRAINT uc_num UNIQUE (num)

Foreign Key Constraint

Yabancıl anahtar Constraint anlamındadır. Yani bir tablodaki verinin diğer tablodaki veriye bağlı olduğunu söyler.

CREATE TABLE tblKitap
(
kod int,
num int,
ad nchar(20),
CONSTRAINT pk_kod PRIMARY KEY (kod),
CONSTRAINT fk_num FOREIGN KEY (num) REFERENCES info(id)
)

İnfo tablosundan id kolonundan referans almakta olduğunu görüyoruz. Eğer tabloyu daha önceden oluşturmuşsanız aşağıdaki ifadeyi kullanabilirsiniz.

ALTER TABLE tblKitap
ADD CONSTRAINT fk_num FOREIGN KEY (num) REFERENCES info(id)

Default Constraint

Varsayılan Constraint anlamındadır. Tablodaki herhangi bir alan için girilmesi gereken bir değerin atanmasıdır. INSERT komutu için geçerlidir. Mesela bir ürünün satıldı mı diye kontrol etmek amacıyla bir kolonuna default olarak 1 değerini girmek örnek olarak verilebilir.

CREATE TABLE tblKitap
(
kod int,
num int,
ad nchar(20) DEFAULT 'Java',
CONSTRAINT pk_kod PRIMARY KEY (kod),
CONSTRAINT fk_num FOREIGN KEY (num) REFERENCES info(id)
)

Eğer tabloyu daha önceden oluşturmuşsanız aşağıdaki ifadeyi kullanabilirsiniz.

ALTER TABLE tblKitap
ADD CONSTRAINT dk_ad DEFAULT 'Java' FOR ad

Check Constraint

Kontrol Constraint anlamındadır. Belirtilen formata göre verilerin girilmesini sağlar. Mesela telefon numarasının 11 hane olarak girilmesini kontrol etmek için, Check Constraint kullanılır.

CREATE TABLE tblKitap
(
kod int,
num int,
ad nchar(20),
CONSTRAINT pk_kod PRIMARY KEY (kod),
CONSTRAINT fk_num FOREIGN KEY (num) REFERENCES info(id)
CONSTRAINT ck_ad CHECK (ad < 50),
)

Eğer tabloyu daha önceden oluşturmuşsanız aşağıdaki ifadeyi kullanabilirsiniz.

ALTER TABLE tblKitap
ADD CONSTRAINT ck_ad CHECK (ad < 50)

hakkımdaki her şeyi bu blogda bulabilirsin. Haydi sende bir göz gezdirmeye ne dersin?

Bir cevap yazın

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