SQL CHECK Kullanımı
CHECK ile bir alana girilebilecek değerleri sınırlayabiliriz. Mesela tablomuzda YAŞ bir alanı "int" tipinde yani sayısal alan olarak belirlemiş olabiliriz.
Ancak bu alan negatif sayı girilmesi anlamsız olacağı için CHECK yapısını kullanarak negatif giriş yapılmasını engelleyebiliriz.
- Tablo Oluştururken CHECK Tanımlama Örneği
SQL Server / Oracle / MS Acess ortamlarında kullanım biçimine
örnek:
CREATE TABLE Personel
(
id int,
Adi varchar(20)
,
Yas int CHECK
(Yas>0)
) |
MySQL ortamında kullanım biçimine örnek:
CREATE TABLE Personel
(
id int,
Adi varchar(20) ,
Yas int,
CHECK (Yas>0)
) |
MySQL veritabanında tanımlama yapılırken en son satıra CHECK ifadesi yazılıp
hemen yanına şartımızı yazarız. Diğer veritabanlarında ise ilgili alanın tipi
tanımlandıktan sonra hemen yanına CHECK ifadesini ve şartını yazarız. Eğer "id"
alanına 100 den büyük rakamların girilmesini sağlayacak bir tanımlama yapılacak
olsaydı o zaman id int CHECK (id>100) yazmamız
gerekirdi. Böylece id alanına girilecek olan değerin 100 'den büyük olacağını
belirtmiş olurduk.
Eğer birden fazla alan kontrol edilecek ise MySQL 'de olduğu gibi alan
tanımlarının sonuna CONSTRAINT ile tanımlama yaparak yazmamız gerekirdi. Mesela
id alanına 100 'den büyük değer girilirken sehir alanına da sadece İstanbul
girilmesini istersek o zaman son satıra CONSTRAINT kontrol CHECK (id>100
AND sehir='İstanbul') yazmamız gerekirdi.
ALTER TABLE Personel
ADD CONSTRAIN kontrol
CHECK (yas>0) |
- FOREIGN KEY Kaldırma Örneği
MySQL ortamlarında FOREIGN KEY yapısını kaldırmak:
ALTER TABLE Personel
DROP CHECK kontrol |
SQL Server / Oracle / MS Access ortamlarında FOREIGN KEY yapısını kaldırmak:
ALTER TABLE Personel
DROP CONSTRAINT kontrol |
Görüldüğü üzere MySQL veritabanından kaldırma işlemi sırasında CHECK
ifadesi kullanılırken, diğer veritabanlarında CONSTRAINT ifadesi kullanılıyor.
Ama her iki biçimdede sonuna, oluştururken verdiğimiz ismi yazmamız gerekiyor.