Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

SQL Check Constraints

SQL meraklılarına yeniden selamlar :)

Bugün yeniden bir T-SQL makalesiyle yine beraberiz ve yep yeni bilgiler öğrenme konusunda devam ediyoruz.Bugünkü SQL makalemizde veritabanlarında matematiksel konularda yanlış veri girilmesini önleyen Check Constraints konusunu 
öğreneceğiz.

Check Constraints'i Türkçe'ye çevirmek biraz zor ancak anlaması en kolay cümle "Sınırlamaları Kontrol Etmek" olabilir.Burada şunu kastediyorum; girilen veri daha önce belirlenen kıstaslara doğru bir biçimde giriliyor mu?
Son cümle sanırım kafanızdaki ampulün yanmasını sağlamıştır umarım :)

Evet,veritabanına girilecek verinin doğru bir şekilde girilip girilmediğini check constraints yapısıyla denetim altına alabiliyoruz.Konuyu önceki SQL makalemizdeki örnek veritabanımız olan BakkalDB ile bağdaştırarak devam ettireceğiz ancak baştan şunu söylemek istiyorum; check constaints yapısını kullanabilmek için öncelikle kafanızda matematiksel bir formül yazmanız gerekiyor çünkü veri girişlerinde bu formül kullanılacak.
Formülden kastımı şöyle açıklayabilirim; örneğin bakkal amcamız veritabanındaki sepetler tablosuna data girmeye 
çalışıyor,kolonlarımız ise fiyat,birim ve toplam kolonlarımız olsun.Bakkal amcamız haliyle yaşlanmaya başladı ve o da 
ne! Bakkal amcamız birim fiyatı 2 TL olan sütten 2 tane satmış ancak toplam kolonuna 4 TL girmesi gerekirken 5 TL 
yazmış yanlışlıkla.

Peki bu durumda ne yapacağız,hesaplar tutmazsa veri girişi böyle mi devam edecek?
Tabiki hayır!

İşte tam bu noktada şöyle bir matematiksel formül aklımıza geliyor:
Toplam Fiyat=Birim Fiyat * Adet

Not=Buradaki * işareti matematikteki çarpma işaretinin bilgisayar dilindeki karşılığıdır.

Artık bu formülümüzü check constraint olarak veritabanımıza bir defalığına kaydediyoruz ve veritabanına her bilgi 
ekleme-güncelleme esnasında girilen verinin formüle uygun olup olmadığını denetleyip yanlış veriler girmemizi 
engelliyor.
Şimdi de veritabanına check constraint nasıl tanımlanır görelim,aşağıda BakkalDB isimli örnek veritabanımızın son 
halini görüyoruz:

bakkaldb

Şimdi yapmak istediğimiz konu şu,sepet tablosuna veri girilirken toplam tutar yukarıdaki belirttiğim formüle uygun 
olmalı,bunun için öncelikle sepetler"Toplam" adında "money" veri tipinde bir kolon oluşturuyoruz:

SQL-Tablo

Toplam tutar verisinin check constraints'e uygun olması adına boş geçilmemesi gerekiyor ve null işaretini kaldırdık.
Sıra geldi check constraint koşulumuzu yazmaya,toplam kolonuna sağ tıklıyoruz ve gelen seçeneklerden "Check 
Constraints" i seçiyoruz:

Check-Constraints

Ardından "Add" butonuna tıklıyoruz:

SQL-Check-Constraints

Check Constraint şablonu ekrana otomatik yükleniyor ve aşağıda sarı renkte gösterdiğim kısma formülümüzü yazıyoruz:

T-SQL

Eğer daha uzun fomül yazmamız gerekiyorsa formül satırının sağında çıkan 3 noktalı butona tıklar ve geniş bir formül 
penceresine formüllerimizi yazarız.

Check Constraint olarak yazdığımız formül şu anlama gelmektedir:

Veri giriş ve güncellemesinde Toplam kolonunun değeri, Birim ve Fiyat kolonuna girilen dataların çarpımlarıdır.

Formülümüzü yazdığımıza göre artık Close butonuyla penceremizi kapatabilir ve veritabanımızı diyagramda 
kaydedebiliriz.

SQL Check Constraints konusu burada son buluyor,gördüğünüz gibi SQL Server Management Studio sayesinde diğer SQL dillerine nazaran birçok yapıyı SQL sorguları yazmadan görsellerle birlikte kolaylıkla gerçekleştirebiliyoruz.

Şu ana kadar SQL derslerimizde henüz örnekler gerçekleştirmedik ve maalesef konuları öğrendiğiniz halde örnek 
yapmadığımız için biraz havada kalabilir ancak birkaç makale sonrasında artık SQL konusunun can damarı denilebilecek 
SQL sorgularını öğrendiğimizde yine bu örnek veritabanımız üzerinden bu konulara tekrar geri dönüş yapacağız,o yüzden biraz sabırlı olmanızı rica ediyorum :)

Bir sonraki makalemizde görüşmek dileğiyle şimdilik hoşçakalın.

Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu