15 Haziran 2014 Pazar

64- SQL Grant Kullanımı

  • Kullanıcıya yetki verir.
  • Genel yapısı şu şekildedir.
GRANT (all | izinler)
ON (izneTabiTutulanlar)
TO (izinVerilenler)

  • Aşağıdaki yapıda User kullanıcısına tablo oluşturma yetkisi veriyoruz.
GRANT CREATE TABLE TO User
  • Aynı şekilde kullanıcıya güncelleme, silme ve ekleme yetkisi de verebiliriz.
GRANT INSERT,UPDATE,DELETE TO User

  • Örneğin kullanıcımıza istediğimiz tablodan select çekebilmesine izin verelim.
GRANT SELECT ON Tablomuz TO User

WITH GRANT OPTION: Dereceli yetkilendirme işleminde kullanılır. Yani siz bir kullanıcıya yetki verdiniz diyelim o kullanıcı da sizin gibi başka kullanıcılara izin verebilir.
  • Aşağıdaki örneğimizde biz kullanıcımıza Sehir tablomuza ekleme ve select atma yetkisi veriyoruz.Önemli kısmı WITH GRANT OPTION olduğu için User kullanıcısı da başka bir kullanıcıya kendinde olan bu 2 hakkı verebilir. Dikkat etmemiz gereken asla fazlasını yani kendinde olmayan bir hakkı veremez.
GRANT SELECT,INSERT ON Sehir TO User
WITH GRANT OPTION

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.