Northwind (Kısıtlayıcılar)

T-SQL’ de kullandığımız constraintler, veritabanımızda kolonlarımız üzerinde bazı kısıtlamalar yapmamızı sağlar.Bunlar default,check,primary key,unique,foreign key constrainleri olmak üzere 5 grupta toplayabiliriz.

--Veritabanlarında düzenleme işlemleri alter komutu ile gerçekleştirilir.

--alter dbonesnesi dboAdı
--düzenlenecek kısım

use Northwind

alter table Orders
add OrderName nvarchar -- orders tablosuna nvarchar türünde OrderName kolonu ekler.

alter table Orders
drop column OrderName  --eklediğimiz OrderName kolonunu "drop" ifadesiyle kaldırdık.

--Kısıtlayıcılar ile ilgili örnek yapmak için northwind veritabanımızda "deneme" adlı bir tablo oluşturalım

create table deneme
(
	Id int primary key identity(1,1),
	Cop1 nvarchar(10) ,
	Cop2 nvarchar (15),
	Tel nvarchar(11), 
)

alter table deneme								--alter komutu ile deneme tablosunda çalışacağımızı belirttik.
add constraint dc_deneme default 'NULL' for Tel --default constraint ile deneme tablosunda Tel kolonuna veri girilmediği zaman NULL yazılmasını sağladık.
                                                --default komutundan istediğimiz herşeyi yazdırabiliriz.Bazı özel fonksiyonları da kullanabiliriz.
alter table deneme
add constraint cc_deneme check(YEAR(Cop1)<2013) --check constraint kolona girilecek verinin belirli şartlar dahilinde girilmesine izin verdik.
                                                --cop1 kolonuna 2013 yılından küçük değerler girilebilir.Ama bu kısıtlayıcı eklemeden önce veritabanımızda
												--2013 yılından büyük veri varsa bize hata fırlatacaktır.Önceki verileri görmezden gelip bundan sonraki kayıtlar
												--için kısıtlamamızı çalıştırabiliriz.
alter table deneme								
with nocheck add constraint cc_deneme check(YEAR(Cop1)<2013)--with nocheck önceki kısıtlamaya uygun olmayan verileri görmezden geldi.

alter table deneme
add constraint pk_deneme primary key (Id)       --Id kolonu tablonun primary keyi olmuştur. Diğer tabloların foreign keyi ile ilişki kurmak için kullanılır.

alter table deneme
add constraint uk_deneme unique (Cop2)			--Unique constraint tek amacı belirtilen kolonun tekil olmasını sağlamaktır.

create table denemea
(
Id int primary key identity(1,1),
kelime1 nvarchar(20)
)                                               --ForeignKey kısıtlaması için iki yeni tablo oluşturduk.
create table denemeb
(
Id1 int primary key identity (1,1),
kelime2 nvarchar(20)
)

alter table deneme
add constraint fk_deneme foreign key (Id) references denemeb (Id1) --denemea tablosundaki Id kolonu foreign key yaptık ve denemeb tablosundaki
																   --Id1 kolonuna bağladık.Artık denemeb tablosundan denemea tablosunda karşılığı olan 
																   --veri silinip yada güncellenemez.

--Delete ve Update komutlarındaki verilerin davranışları için cascade,set null,set default ayarları yapılmalıdır.

Bir cevap yazın

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