SQL CHECK Kullanımı
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.
- Var olan Tabloya CHECK Tanımlama Örneği
MySQL / SQL Server / Oracle / MS Access ortamlarında kullanım biçimine örnek:
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.