SQL Constraint Kullanımı

Merhabalar arkadaşlar, bu yazımda kolonlar üzerinde belli şartlar koyabildiğimiz constraint alanlardan bunların özelliklerinden bahsedeceğim.

Constraint özellikler kullandığımız çeşide göre kolonun üzerine belli filtreler/şartlar tanımlamamıza imkan sağlamaktadır. Mesela bir kolonun içerisindeki datalar benzersiz olsun ya da bir kolona null data giremesin ya da bir kolona belli şartlara göre data girebilsin vb. gibi şartlarımız olduğunda constraint özelliklerini kullanırız. Bunu yapmaktaki asıl maksat temizlenen dataların bozulmaması, belli bir mantığa göre modelin dizayn edilebilmesi, datalara erişimi kolaylaştırmak gibi gibi bir sürü etken sayabiliriz.

  • Primary Key : Bir tabloda en fazla bir tane oluşturulabilmektedir. Kullanıldığı kolonun unique/benzersiz olmasını sağlamaktadır. Mantıken Not Null ve Unique ifadelerinin birleşimi olarak düşünebiliriz. Bu durumda tanımlandığı kolona null data da girememektedir. Bu özelliği ile unique ifadesinden ayrılmaktadır.
  • Foreign Key : Bir başka tablonun bir kolonunu unique/benzersiz olarak tanımlar. Buradaki mantıkta A tablosunda tanımlanan primary key alan B tablosunda da kullanılıyorsa bu alan B tablosunda foreign key olarak tanımlanır. Bu durumda B tablosuna yeni bir data insert edilmek istenildiği zaman A tablosunda da insert edilmek istenilen datanın bir karşılığının bulunması gerekir. Yani B tablosu A tablosunu referans almış olur bu da modellemenin daha kaliteli olmasını sağlamaktadır.
  • Unique : Tanımlanan kolona benzersiz olma şartı koyar. Bir tabloda birden fazla oluşturulabilir.
  • Not Null : Tanımlanan kolona null dataların gelmesine izin vermez. Tanımlanan kolon için hem unique hem de not null aynı anda kullanılabilmektedir.
  • Check : Tanımlanan kolon üzerinde belli datalar için filtre koyabilmek için kullanılır. Yani gelen datayı check ederek tabloya yazar gibi düşünebiliriz. Mesela number bir kolon üzerinde 1-100 arasındaki dataları alması yönünde bir check tanımlarsak bu aralığın dışında gelen tüm datalar için hata verecektir.

Constraintleri tablo oluştururken de tanımlayabiliriz ya da daha sonrasında alter komutu ile istediğimiz tablo üzerinde tanımlayabiliriz.

Örnek olması için bir tablo create ederek constraint ifadeleri kullanalım;

Bu durumda kolonların üzerinde tanımlanan durumlara göre tabloya datalar insert edilecektir. Aksi durumlar için insert işleminde DB hata vererek kullanıcıyı uyaracaktır.

Kısaca constraint kullanımları bu şekildeydi. Umarım faydalı olmuştur, herkese iyi çalışmalar dilerim 🙂

Bir cevap yazın

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