gencistatistik.com---İstatistik---İstatistik Ders Notları---İstatistik Bölümü

Tam Görünüm: SQL--Constrains
Şu Anda Hafifleştirilmiş Görüntüleme Modundasınız. Tam Görünüm Modu için, Buraya Tıklayın
[CENTER]
KISITLAR (Constrains)
[/CENTER][JUSTIFY]SQL Server bize veritabanı üzerinde bazı kısıtlamalar tanımlamamıza imkan verir. Kolon seviyesinde ve tablo seviyesinde olmak üzere iki seviyede kısıtlama yapabiliriz.[/JUSTIFY]
[JUSTIFY]
Kolon Seviyesinde Kısıt Tanımlama:
Bu kısıtlama türünde tek kolon üzerinde kısıtlama yapılabilir.
NULL
veya
NOT NULL
anahtar sözcükleriyle gerçekleştirilir.
[JUSTIFY]
NULL - NOT NULL:
Bir kolonun boş (
null
) değer alıp (
NULL
) almaması (
NOT NULL
) için gereken kısıt tanımlanır. Veritabanında, kullanacağımız tablonun tasarım kısmında (tablo üzerinde sağ tıklayarak, açılan menüden
Design Table
seçeneğini seçerek) kısıt ayarlamalarını yapabiliriz.
[CENTER][Resim: SA.SQL.1.10.1.constraint_bos_oznur.jpg]

1.Şekil : NULL veya NOT NULL kısıt ayarı.
[JUSTIFY]Örneğimizde, tablodaki
KisiAdi
kolonu
Allow Nulls
seçeneği onay imli olmadığı için
NOT NULL
kısıtına sahiptir. Bu kısıt sayesinde kolona veri girişi sırasında, kolon boş değer alamaz.
Maas
isimli kolonunun onay imi işaretli olduğu için
NULL
kısıtına sahip olur. Bu sayede, veri girişi sırasında, bu kolona değer girilmeme imkanı vermiş oluruz.
[JUSTIFY]
Tablo Seviyesinde Kısıt Tanımlama:
Bir veya bir kaç kolon üzerinde kısıt oluşturmak için kullanacağımız kısıt türleridir.

Tablo seviyesinde kısıt oluşturma türleri şunlardır:[/JUSTIFY]
[*]UNIQUE
[*]Primary key
[*]Foreing key
[*]Check [JUSTIFY]
UNIQUE:
Bir kolonu benzersiz alan olarak belirleyebiliriz. Benzersiz olarak belirlediğimiz kolon sayesinde, iki farklı kaydın, bu alandaki değeri bir birinden farklı olması sağlanır. Böylece, benzersiz kolona aynı değerin girilmesini kısıtlamış oluruz.[/JUSTIFY]
[JUSTIFY]
Primary Key (Birincil anahtar):
Tablodaki herhangi bir kolonu birincil anahtar olarak belirleyerek
Primary Key
kısıtını sağlarız. Birincil anahtar (primary key), o kolondaki tüm değerlerin benzersiz olması ve boş geçilemez olması kısıtını sağlar (UNIQUE + NOT NULL). Tablo üzerinde sadece bir tane birincil anahtar olabilir.
Tablonun tasarım kısmında,
KisiId
kolonunun üzerindeyken, [Resim: SA.SQL.1.10.2.constraint_anahtar_oznur.jpg] simgesi üzerine tıklayarak, kolonun birincil anahtar olmasını sağlayabiliriz.
[CENTER][Resim: SA.SQL.1.10.3.constraint_birincil_oznur.jpg]

2.Şekil: Birincil anahtar kısıtı.
[JUSTIFY]Tekrar anahtar simgesine tıklayarak birincil anahtarı kaldırabiliriz.[/JUSTIFY]
[JUSTIFY]
Foreign Key (Yabancıl Anahtar):
Başka bir tablodaki, birincil anahtarı tablomuzda kullandığımız zaman
yabancıl anahtar
(
foreing key
) olarak isimlendirilir. Birincil anahtar gibi benzersiz olması gerekir, farklı olarak boş değerler alabilir.
[JUSTIFY]Örneğin, kişiye ulaşacağımız telefonları tuttuğumuz
Irtibat
tablosu olsun. Bir kişinin birden fazla, telefonu olabilir. İşte bu noktada, yabancıl anahtarlar tanımlarız.
Irtibat
tablosunda,
Kisi
tablosunda birincil anahtar olan
KisiId
kolonuyla ilişki kurmak için,
KisiId
kolonu tanımlarız.
Irtibat
tablosundaki,
KisiId
kolonu yabancıl anahtar olmuş olur. Bu alan, benzersiz ve boş değer alabilir kısıtına sahiptir.
[CENTER][Resim: SA.SQL.1.10.4.constraint_yabancil_oznur.jpg]

3.Şekil: Yabancıl anahtar kısıtı.
[JUSTIFY]Tabloda tanımladığımız yabancıl anahtar, yabancı tablodaki birincil anahtar ile tablonun kendi kolonları arasında ilişki kurmamızı sağlar. [/JUSTIFY]
[JUSTIFY]
CHECK:
CHECK kısıtı, kolona belirli değerler girilmesini sınırlamak için kullanılır.
Doğru
(
true
) veya yanlış (
false
) değerler dönderen ifadelerdir. Eğer doğru (
true
) mantıksal değeri dönerse, üzerinde
CHECK
kısıtı olan kolona değer girebilir veya güncelleyebiliriz. Örneğin kolona belirli aralıkta değerin haricinde değer girilmesini istemezsek
CHECK
kısıtını kullanırız.
[CENTER]
Kurallar [/CENTER]
[JUSTIFY]Kurallar, veri girişinde kısıtlamayı sağlamak için kullanılırlar. Kurallar kullanarak, bir kolona girilecek olan verinin şartlarını belirleyebiliriz. [/JUSTIFY]
[JUSTIFY]
Kural Oluşturma
Veritabanı nesnelerinden
Rules
üzerinde sağ tıklayarak
New Rules
dedikten sonra bir pencere açılır. Buraya, kuralın ismini ve şartını girerek yeni bir kural oluşturabiliriz.
[CENTER]
[Resim: SA.SQL.1.10.5.kural_oznur.jpg]

4.Şekil : Kural oluşturma.
Örneğin, ismini
AralıkSayi
olarak verdiğimiz bir kural tanımlayalım. Şart kısmına da aşağıdaki ifadeyi yazalım.
@deger>= 100 and @deger<2000
[JUSTIFY]Bu sayede, kolona girilecek sayının 2000'den küçük ve 100'den büyük ve ya eşit bir sayı olması kuralını tanımlamış olduk. [/JUSTIFY]

Kuralın Kolonlara Uygulanması
[JUSTIFY]Bu kuralı herhangi bir kolona uygulamak için, oluşturmuş olduğumuz
AralıkSayi
kuralının üzerinde çift tıklayalım. [/JUSTIFY]
[CENTER][Resim: SA.SQL.1.10.6.kural_kolon_oznur.jpg]

5.Şekil: Kuralın kolonlara uygulanması.
[JUSTIFY]Açılan ileti kutusundan
Bind Columns
komut düğmesine tıklayıp, kuralı uygulamak istediğimizi kolonları seçerek, kuralımızı kullanmış oluruz. [/JUSTIFY]

Kuralın Güncellenmesi
[JUSTIFY]Kural üzerinde, değişiklik yapmak için kuralı çift tıklamamız ve istediğimiz değişiklikleri yaptıktan sonra
Tamam
komut düğmesini tıklamamız yeterli olacaktır. [/JUSTIFY]

Kuralın Silinmesi
[CENTER][Resim: SA.SQL.1.10.7.kural_silme_oznur.jpg]

6.Şekil: Oluşturulan kuralın silinmesi.
[JUSTIFY]Herhangi bir kuralın üzerinde sağ tıklayarak
DROP ALL
komut düğmesini tıklayarak silebiliriz.[/JUSTIFY]
[CENTER]
VARSAYILAN DEĞERLER
[/CENTER]
[JUSTIFY]Varsayılan değerler, veri girişi sırasında kullanıcı kolona herhangi bir veri girmezse, SQL Server tarafından otomatik olarak o kolona veri atanmasını sağlar. [/JUSTIFY]
[JUSTIFY]
Varsayılan Değer Oluşturma
Enterprise Manager içinde, veritabanı nesnesi olan
Defaults
üzerinde sağ tıklayıp
New Default
diyerek istediğimiz varsayılan değer oluşturabiliriz.
[CENTER][Resim: SA.SQL.1.10.8.varsayılandeger_oznur.jpg]

7.Şekil : Varsayılan Değer oluşturma
Varsayılan değerin ismini
StandartAdres
olarak belirledikten sonra, şartına
'Bahçelievler'
girelim. Şimdi oluşturduğumuz varsayılan değeri uygulayalım.

Varsayılan Değerin Kolonlara Uygulanması
Varsayılan değer üzerinde çift tıkladıktan sonra,
Bind Columns
komut düğmesine tıklayıp, veritabanından istediğimiz tabloyu seçeriz.
[CENTER][Resim: SA.SQL.1.10.9.varsayılandeger_kolon_oznur.jpg]

8.Şekil: Varsayılan değerin kolonlara uygulanması.
Seçtiğimiz tablonun kolonlarından hangisine varsayılan değerin uygulanmasını istiyorsak, onu seçerek
Add
komut düğmesine basarak bağlanmış kolonlar listesine ekleriz. Bağlanmış kolonlar listesinden, varsayılan değerin uygulandığı kolonu seçip,
Remove
komut düğmesine tıklayarak, varsayılan değere bağlanmamış kolonlar listesine ekleriz.

Bu sayede, kolonlara veri girişinde, adres kolonuna giriş yapılmadığında, varsayılan değer olarak
Bahçelievler
değerinin girilmesini sağladık.
Varsayılan Değerin Güncellenmesi
[JUSTIFY]Varsayılan değer üzerinde değişiklikler yapmak için oluşturduğumuz varsayılan değeri çift tıklarız. İstediğimiz değişiklikleri yaptıktan sonra
Tamam
komut düğmesini tıklayarak, varsayılan değeri değiştirmiş oluruz. [/JUSTIFY]

Varsayılan Değerin Silinmesi
[CENTER][Resim: SA.SQL.1.10.10.varsayılandeger_silme_oznur.jpg]

9.Şekil: Varsayılan değerin silinmesi.
Herhangi bir varsayılan değer üzerinde sağ tıklayarak
DROP ALL
komut düğmesini tıklayarak silebiliriz.

Bu makalede ögrendiklerimiz
  • Kısıtlar nedir?
  • Kısıtların çeşitleri nelerdir?
  • Kısıtlar nerelerde ve nasıl uygulanır?
  • Kurallar nedir? Kurallar nasıl oluşturulur?
  • Kurallar kolonlara nasıl uygulanır?
  • Kurallar nasıl değiştirilir?
  • Kurallar nasıl silinir?
  • Varsayılan değerler nedir?
  • Varsayılan değerler nasıl oluşturulur?
  • Varsayılan değerler kolonlara nasıl uygulanır?
  • Varsayılan değerler nasıl değiştirilir?
  • Varsayılan değerler nasıl silinir?
Referans Adresler