KEY
VE CONSTRAINT
İleri Seviye Constraintler
1.
Entity
Constraintler(Kayıt)
2.
Domain
Constraintler(Sütun-alan)
3.
Referential
Constraintler(Referans)
Constraint Çeşitleri
1.
Primary Key (Birincil Anahtar)
2.
Foreign Key (Yabancıl anahtar)
3.
Unique Constraint
4.
Check Constraint
5.
Default Constraint
6.
Rule Constraint
7.
Default Nesnesi
İleri Seviye Constraintler
1. Entity Constraintler : Tek tek satırlarla ilgilenir. Her satırda farklı bir değer alır. Tüm sütunla ilgilenmez. Bunun için Primary key ve Unique Constraint kullanılır.
2. Domain Constraintler : Sütunlara verilen kısaltmalardır. Bunun için Check Constraint, Default Constraint ve Default Nesnesi kullanılır. Örneğin adı alanına en az 3 karakterlik giriş yapılacak ya da doğum tarihi alanı 2000 ile 2011 yılları arasında olacak gibi.
3. Referential Constraintler : Bir sütundaki değerin aynı tablo veya farklı tablodaki diğer bir sütundaki veri ile eşleştiği zaman oluşur. Bu constraint için Foreign Key kullanılır.
Constraint
Çeşitleri
1.
Primary Key : Girilen değerler ve metinler de
aynıları var mı diye bakar ve aynısı girilmez. Entity olduğundan satır satır bakar. Tablonun temel alanıdır. Daha
çok indekslemede kullanılır. Unique'den farkı boş geçilemez(NOT NULL).
Tablo
oluştururken Primary Key ekleme :
create table <tabloadi>(
<alanadi> <veritipi> primary key)
Alter : Daha önceden oluşturulmuş nesnenin değiştirilmesini, düzenlenmesini sağlar. Tablonun tasarımını, alanlarını değiştirmek gibi.
Tablo oluşturduktan sonra Primary Key ekleme :
alter table <tabloadi>
add constraint <herhangibirisim>
primary key(<alanadi>)
2.
Unique Constraint : Entity'ye girer. Her bir satıra tek tek
bakar. Değer sadece 1 kez girilir. TC kimlik numarası gibi. Primary Key'den
farkı boş geçilebilir olması (NULL).
Tablo oluştururken Unique Constraint ekleme :
create table <tabloadi>(
<alanadi> <veritipi> unique)
Tablo oluşturduktan sonra Unique Constraint ekleme :
alter table <tabloadi>
add constraint <herhangibirisim>
unique(<alanadi>)
3.
Foreign Key : Referential Constraint'dir. Referans alarak işini yapar.
Tablo
oluştururken Foreign Key ekleme :
create table <tabloadi1>(
<alanadi> <veritipi> foreign key references <tabloadi2(<alanadi>)> )
Tablo oluşturduktan sonra Foreign Key ekleme :
alter table <tabloadi1>
add constraint <herhangibirisim>
foreign key (<alanadi>)
references <tabloadi2(<alanadi>)>
4.
Default Nesnesi : Bir nesne oluşturulur ve bu nesne
istenilen tablolarda varsayılan değer olarak kullanılabilir. Global bir
değişken olarak da düşünülebilir.Oluşturulan nesneyi drop ile sileriz. Domain'e girer.
create
default <isim> as 'deger' --Default nesnesini oluşturduk.
create default
cins as 'kalem' --Oluşturduğumuz
nesneyi istediğimiz alanlara bağlamamız lazım.
exec sp_bindefault 'isim','tabloadi.alanadi' --İstenilen
alana bağlandı.
exec sp_bindefault
'cins', 'maliyet.cinsi'
exec sp_unbindefault 'tabloadi.alanadi' --Alanla
bağlantısı kesildi.
exec sp_unbindefault 'maliyet.cinsi'
5.
Default Constraint : Sadece bir tablodaki alana
uygulanabilir, birden fazla tabloya uygulanamaz. Default Nesnesi'nden farkı
budur. Yerel değişken olarak düşünülebilir. Domain'e girer.
Tablo oluştururken Default Constraint ekleme :
create table <tabloadi>(
<alanadi> <veritipi> default (<deger>))
create table sehir(
sehiradi varchar(20) default ('istanbul'))
Tablo oluşturduktan sonra Default Constraint ekleme :
alter table <tabloadi>
add constraint <herhangibirisim>
default ....... (<alanadi>)
alter table
maliyet
add constraint
dftarih
default getdate() for tarih
6.
Rule Nesnesi : Kural oluşturulur. İstenilen her
tablonun sütununda kullanılır. Domain'dir.
create rule <isim> as @isim<operatörler>deger --Rule nesnesini oluşturduk. create rule ucret as @ucret>1000
exec sp_bindrule 'isim','tabloadi.alanadi' --İstenilen alana bağladık.
exec sp_bindrule 'ucret', 'maliyet.cinsi'
exec sp_unbindrule 'tabloadi.alanadi' --Alanla bağlantısı kesildi.
exec sp_unbindrule 'maliyet.cinsi'
7.
Check Constraint : Verilen kontrole uyan kayıtları alır,
uymayanları kabul etmez. Domain'dir.
Tablo
oluştururken Check Constraint ekleme :
create table <tabloadi>(
<alanadi> <veritipi> check (alanadi<deger>))
create table maliyet(
bf money check(bf>5))
Tablo oluşturduktan sonra Check Constraint ekleme :
alter table <tabloadi>
add constraint <herhangibirisim>
check (<alanadi><deger>)
alter table
maliyet
add constraint
chcinsi
check(cinsi like '_____')
Cascade : Silme ve güncelleme işlerini otomatik olarak yapar.
on delete cascade : siler.
on update cascade : günceller.
exec sp_helpconstraint <tabloadi> : Constraintlerin yapısını gösterir.
Silme kısmının otomatik ve güncelleme
kısmının cascade olmasını istemiyorsak ;
on delete cascade
on update No active
Hiç yorum yok:
Yorum Gönder