Tablolarımıza Check Constraint Eklemek - İsmail GÜRSOY
Anasayfa / Yazılım / SQL / Tablolarımıza Check Constraint Eklemek
admin 17 Mayıs 2014	SQL
8,693 Views Share
SQL veri tabanı geliştiricisi olarak hepimiz biliyoruz ki herhangi bir veri tablosundaki her bir sütun içindeki saklanan veri belirli bir veri tipindedir ve hatta maksimum boyutuda belirlenmiştir. İlgili sütuna NULL veri girilebilir mi, girilemez mi, bu bile tablonun oluşturulması esnasında belirtilmektedir. Örneğin INT veri tipi tanımlanmış bir sütuna biz herhangi bir string değer girememeliyiz. Ama biz eğer tablolarımı oluştururken herhangi bir kısıtlama tanımlamadı isek, kullanıcının bu istenmeyen durumları gerçekleştirebilmesinin önüne geçemeyiz. Sonuç itibari ile sayı istenen bir alana kullanıcı herhangi bir kelime girebilir ve eğer biz kısıtlayıcı yani constraint tanımlamaz isek kullanıcının girmiş olduğu bu veriyi kabul ederiz. İşte bu gibi durumların önüne geçebilmek için tablolarıma Check Constraint yani kontrol kısıtlayıcıları ekleyebiliyoruz. Bu check constraintler ile bir çok şeyi yapabiliriz. Örneğin sadece INT veri girilmesini sağlayabiliriz ya da sadece belirli bir aralıkta değer girilmesini sağlayabiliriz. Diyelim ki bir yaş bilgisi istiyorsunuz o alana tabii ki 0 ile mantıksal olarak düşünürsek 100 arası değer isteriz. Tabi maşallah daha fazla yaşayanlar da olabilir 🙂 İstisnaları da düşünmek gerek. 🙂 Ama tabi yaş alanına tutupda 1500 girilmesi saçma olur 🙂 Makul ölçüde sınırları belirtmek uygun olacaktır. Veya belli bir kolona NULL değer girilmesinin önüne de geçebiliriz. Yani bir kolonun NULL değer olabilme ihtimali ya da NULL olmama ihtimali de aslında bir nevi constraint yani kısıtlamadır. Şimdi MS-SQL’de kod yazarken bir tablo oluşturulması esnasında nasıl kısıtlayıcı ekleyebiliriz görelim. Syntax aşağıdaki gibidir.
CONSTRAINT CHECK ())
Oluşturulmuş bir tabloya sonradan constraint eklemek istediğimizi varsayarsak synatx şu şekilde olur:
ALTER TABLE ADD CONSTRAINT CHECK ()
Örnek olarak aşağıdaki gibi bir tablo oluşturuyorum.
CREATE TABLE tablo1 (kolon1 SMALLINT, kolon2 VARCHAR(20),
CHECK (kolon2 IN ('Ocak','Şubat','Mart','Nisan','Mayıs',
Daha sonra tablomda değişiklik yapıyorum ve yeni bir constraint ekliyorum. Kolon1 değerleri 1 ve 12 dahil olmak üzere bunların arasında olsun istiyorum.
ALTER TABLE tablo1 ADD CONSTRAINT check_tablo1_kolon1
CHECK (kolon1 BETWEEN 1 and 12);
Şimdi tablomuza veri ekleyelim.
INSERT INTO tablo1 (kolon1,kolon2)
Bir veri daha ekleyelim
Burada ilk veri eklenir, çünkü herhangi bir constrainte yakalanmıyor. Ancak ikincisi eklenmeyecektir. Çünkü biz kolon1 için 1 ve 12 (1 ve 12 dahil) arasında olacağı şartını eklemiştik. Kodda ise kolon1’e 13 eklenmek isteniyor.
Görüleceği üzere Check constraint oluşturmak çok basit.
check constraint check constraint deyimi check constraint kullanımı sql check kullanımı sql constraints sql kısıtlayıcılar sql kontrol kısıtlayıcısı	2014-05-17
Tags check constraint check constraint deyimi check constraint kullanımı sql check kullanımı sql constraints sql kısıtlayıcılar sql kontrol kısıtlayıcısı
Previous XML Metotları
Next UNIQUE Constraint Kullanımı
Random Posts	Static Classes (Statik Sınıflar)