Tablo Oluşturmada Kısıtlamalar ( Constraints ) – 1

SQL Management Studio ekranında tablo nasıl oluşturulur, tablodaki bir alan nasıl primary key yapılır, primary key nedir, tablodaki bir alanın boş geçilip geçilemeyeceği nasıl ayarlanır bu ve bu gibi şeylerden bahsetmiştik.  Şimdi bunları ve daha fazlasını kodlayarak yapmayı öğreneceğiz.

Bir tablo oluştururken bazı alanlar zorunlu bazı alanların ise isteğe bağlı olması istenir. Bazı alanlar tekrarlanmamalı, bazı alanlar ise istenilen kadar tekrar edilebilmelidir. Bazı alanlar tabloya girilmeden önce bazı kurallara uyuyor mu diye kontrol edilmelidir. Bazı alanlar ise aslında başka tablodan referans alan alanlar olabilir. Bazı alanların ise başlangıçta varsayılan değerlerinin olmasını isteriz. İşte bütün bunları sağlamak için tablo oluştururken bazı kurallar uygulanır. NULL, NOT NULL, PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK, DEFAULT, IDENTITY tablo oluştururken yaptığımız kısıtlamalardır.

NULL, NOT NULL:

Tablomuzu oluştururken boş bırakılabilecek alanları NULL ile boş bırakılamayacak yani zorunlu olan alanları ise NOT NULL ile işaretlememiz gerekir. NULL ifadesi opsiyoneldir. Herhangi bir şey yazılmazsa NULL geçerlidir. Yani o alan istenirse boş bırakılabilecektir.

Burada Bolumler adında bir tablo oluşturduk. Bolum_Kodu ile belirtilen alan maksimum 4 karakter alabilen bir yazı olabilecek ve boş bırakılamayacaktır. Bolum_Adi ile belirtilen alan ise maksimum 50 karakter alabilecek, ancak hafızada kullanılan karakter sayısı kadar yer tutacaktır. Bu alan da Bolum_Kodu gibi boş bırakılamayacaktır. Çünkü her ikisi de NOT NULL ile işaretlenmişler. Adres ile belirtilen alan ise maksimum 50 karakter alabilecek ve istenirse boş bırakılabilecektir. Çünkü bu alanı NULL ile işaretledik. Adres alanı da Bolum_Adi gibi kullanılan karakter sayısı kadar hafızada yer tutacaktır.

Kodumuzu çalıştırmadan önce doğru veritabanı seçimi yapmalıyız. Execute ile ya da F5 ile çalıştıralım. Command(s) completed successfully mesajını gördük, her şey yolunda. Root veritabanı içerisinde Bolumler tablosu var artık, yoksa eğer refresh yapmalıyız.

Tabloya örnek kayıt girişi bu şekilde yapılabilir. Bolum_Kodu ve Bolum_Adi alanları boş geçilemezken Adres alanını boş geçebilirsiniz.

PRIMARY KEY:

Yukarıda oluşturduğumuz Bolumler tablosunda dikkat edersek Bolum_Kodu ile belirtilen alan aslında her bölüm için özeldir ve tekrar etmemelidir. Daha önce buna birincil anahtar yani primary key dediğimizi söylemiştim. Hatta SQL Server Management Studio ekranında bir alanı primary key de yapmıştık. Tabloyu oluştururken aslında bunu kod yazarak da belirtebiliriz. Bir alanın birincil anahtar olduğunu belirtmek için o alan için tip belirtecinden sonra PRIMARY KEY anahtar sözcüğünü kullanmamız gerekir. Birincil Anahtar, tablodaki bir kaydı diğer kayıtlardan ayıran ve tekrara izin vermeyen alandır.

Az önce Bolumler tablosunu oluşturmuştuk. Kodumuzu ilk başta yazarken tablo daha oluşmadan önce tablomuzu bu şekilde Bolum_Kodu alanına PRIMARY KEY’i de yazarak oluşturabilirdik ve kodumuzu çalıştırabilirdik. O zaman tablo bu kısıtlamayla birlikte oluşurdu. Burada dikkat edilirse Bolum_Kodu alanı tanımlanırken veri tipi belirtildikten sonra PRIMARY KEY kullanılmıştır. Bu durum, Bolum_Kodu alanının birincil anahtar olduğunu ifade eder. Bir tabloda sadece bir tane birincil anahtar bulunabilir. Ama bu bir tane birincil anahtar birden fazla alandan oluşabilir. Böyle bir durumda PRIMARY KEY tanımlaması aşağıdaki gibi yapılır.

Kodu bu şekilde yazıp çalıştırınca Sinavlar tablosunun ve Primary Key olan Ders_Kodu ve Ogrenci_No alanlarının oluştuğunu SQL Server Management Studio ekranından görüyoruz. Sinavlar tablosunda sadece bir tane birincil anahtar olan PK_Sinavlar bulunuyor. Ama bu bir tane birincil anahtar birden fazla alandan oluşuyor.

Bugünlük bu kadar, bir sonraki yazımızda constraintlere kaldığımız yerden devam 🙂

 

Bir cevap yazın

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