11 Mayıs 2014 Pazar

63- SQL Constraints(Kısıtlayıcı) Türlerin Kullanımı

  • Veritabanımızda bulunan verilere mantıksal kısıtlamalar getirmek için kullandığımız bazı türler vardır.
  • Veri modelinde bir genelleme, bütünlük sağlamak açısından önemlidir.
  • Kısıtılamalarımızı tablomuzu create ederken tanımlarız.
  • Tanımlama aşamasında Null olup olmayacağı başka bir tabloyla ilişkisi olup olmadı vs. gibi tablodaki alanla ilgili spesifik sütün tanımlamaları yaparız.
Constraints Types 

Primary Key Constraint
Birincil anahtar kısıtlayıcı anlamındadır. Her girilen değerin farklı olması demektir. Aynı değerden ilgili sütuna 1 kez girebiliriz.. Her tablonun en fazla 1 adet Primary Key Constraint’i olabilir.
  
Unique Constraint
Tekil alan kısıtlayıcı anlamındadır. Birincil anahtar olan ve tablodaki diğer alanlar içinde aynı içeriğe sahip verilerin olmaması için Unique Constraint tanımlanır. Hesap No primary key ve Sehir No. Unique şeklinde bir tanımlama Unique Constraint’e bir örnektir.

Foreign Key Constraint
Yabancıl anahtar kısıtlayıcı anlamındadır. Bir tablodaki bir sütuna ait verilerin başka bir tablonun belirli bir sütunundan gelmesini denetler.Sadece bağladığımız sütundaki değerleri içerebilir.

Default Constraint
Varsayılan kısıtlayıcı anlamındadır. Tablodaki herhangi bir alan için girilmesi gereken bir değerin atanmasıdır. INSERT komutu için geçerlidir. Örneğin, müşteri tablosunda yeni bir kayıt ekleyeceğimiz zaman o alana default ülke bilgisi için eklenecek değer 'Türkiye' olabilir.

Check Constraint
Kontrol kısıtlayıcı anlamındadır. İstedğimiz formata göre verilerin girilmesini sağlar. Örneğin, Hesap No alanına 7 karakterin girilmesi Check Constraint ile sağlayabiliriz.

Kullanımı;

CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

62-NOW() Fonksiyonun Kullanımı

NOW() fonksiyonu sistemde o anki tarih ve saati döner.

SELECT NOW() AS Tarih


61-Foreign Key Kullanımı

  • Foreign key öncelikle başka bir tablo ile tablomuzu ilişkilendirmeye yarar.
  • Ayrıca kendi tablomuzdaki bu alan ilişkilendirdiğimiz tablodaki alandaki değerler olabilir.
  • Yani foreign key ile ilişkilendirdiğimiz her sütun ilgili tablodaki sütunda bulunan değerler ile kısıtlanmış olur.
  • Foreign key olan sütun null olabiliyorsa eşleşmeye bakılmaz.
Foreign key tanımlamak için, tablomuzdaki FK olacak sütunu yazdıktan sonra REFERENCES yazıp bağlamak istedğimiz tablounun adını ve parantez içindede ilgili sütunu yazarız.Aşağıdaki gibi;

CREATE TABLE Musteri
(MusteriNo int NOT NULL PRIMARY KEY,
IlNo int NOT NULL REFERENCES Il(IlNo)

  • Il tablosu foreign key ile bağladığımız tablo.Böylece müşteri tablosunda bulunan her ılNo alanı Il tablosundakilerden biri olmaz zorunda. 
  • Birden fazla foreign key de kullanabiliriz.

28 Aralık 2013 Cumartesi

60- SQL Primary Key Kullanımı

  • Primary Key tablomuzdaki kayıtları sütün aracılığıyla eşşiz kayıt haline getirmemizi sağlar.
  • Primary Key(Birincil Anahtar) 
  • Primary Key olan alanlar Null değerler olamaz ve bu bölüme aynı değerler girilemez.  
  • Genelde otomatik artan değerler olarak kullanılır. Bu otomatik artmayı da identity komutu ile gerçekleştirilir.  
  • Identity komutundan sonra işlemin kaçtan başayacağı ve kaçar kaçar artacağı belirtilir. Identity(1,1) 1'den başlayacağını ve 1'er 1'er artacağını gösterir.
  • Primary Key tanımlamak aslında bir nevi Constraint‘tir yani bir nevi kısıtlama yapmaktır.

Tabloyu Create ederken;
 
BirdId int identity(1,1) NOT NULL,

Tabloyu Alter ederken,

ALTER TABLE Animals ADD PRIMARY KEY (BirdId)

bu şekilde primary key kullanabiliriz.

Primary Keyi tablomuzdan kaldırmak için ise;

ALTER TABLE Animals
DROP CONSTRAINT pk_BirdId








 

20 Nisan 2013 Cumartesi

59- SQL UNIQUE Kullanımı

Bazı durumlarda tablomuzda bir sütünün eşsiz yani tekrarlanmayan olmasını isteriz.
Bunun için bu tür alanlar tanımlanırken Unique Key contsraint tanımı yapılır.

Primary key den farkı ise Unique key bir tabloda birden fazla olmasıdır,
primary key ise tabloda sadece 1 adet olabilir.

Ayrıca Unique Key Contstraint olarak tanımlanmış bir alan NULL olabilir,
fakat değeri null dan farklı olursa kesinlikle daha önce girilen değerlerden farklı olmak zorundadır.

Not: Primary Key alanı tanımlandığında otomatik olarak Unique olarak oluşur.

ÖRNEK: Yeni oluştururken kullanımı,

CREATE TABLE Personel
(
No int NOT NULL UNIQUE,
Soyad varchar(255) NOT NULL,
Ad varchar(255),
Adres varchar(255),
Sehir varchar(255)
)

ÖRNEK: Var olan tabloda sonradan ekleme yaparken,

ALTER TABLE Personel
ADD UNIQUE (No)