SQL Server; Tablolarda Sutün Özellikleri

SQL Server; Tablolarda Sutün Özellikleri

Eğer Sütun özellikleri hakkında yeterli bilgiye sahip değilseniz tablo tasarımında oldukça güçlük çekmemiz kaçınılmazdır. Bu yüzden bu yazımda Veritabanının en temel parçası olan sütunların SSMS (SQL Server Management Studio) özelliklerine örneklerle değineceğim.

Öncelikle SSMS üzerinde yeni bir tablo oluşturmak için aşağıda göründüğü gibi Object Explorer penceresinde bulunan  Database ağacını genişleterek Tables ağacını sağ tıklayarak New Table.. ı tıklıyoruz.

SQL New Table

Karşımıza çıkan ekranda Cloumn Name ve Data Type alanlarını doldurmanız gerekmekte aşağıda göründüğü gibi pencerenin alt kısmında o veri tipinin özellikleri de yer almakta.

Data type property

Not: Bazı özellikler yalnızca belirli veri türleri için görüntülenir.

Şimdi bu özelliklere ve ne işe yaradıklarına tek tek değinelim.

Name:

Name; basitçe sütunun ismidir. Alan adını değiştirmek için tablo tasarım gönümünü yada özellikler penceresini kullanabilmekteyiz.

Allow Nulls:

Allow Nulls sütunda bulunacak verilerin Null değer alıp almayacaklarını gösterir. (Bilindiği üzere null değer içinde veri bulunmayan alan ifade etmektedir ve boşluk ve sıfırdan tamamen farklıdır.) Eğer alanın Allow Nulls özelliği hayır seçilirse alan boş bırakılamaz ve mutlaka bir değer alması gerekmektedir. Bu özelliği aynı zamanda tablo tasarım görünüünde Allow Nulls alanının checkbox’ını kaldırırarakta yapabilirsiniz.

Data Type:

Data Type, adından da anlaşılacağı gibi alana girilebilecek veri tipini belirtir. Bu alanda seçilen tipe göre verinin ne kadar yer kaplayacağı gibi özelliklerde belirlenmektedir. veri tipleri hakkında daha geniş bilgi sahibi olmak için bu makale‘ye göz atabilirsiniz.

Default Value or Binding:

Default Value or Binding, ise özellikle null olmamasını istediğimiz alanlarda kaydı otomatik olarak varsayılan bir değer atamak için kullanılan özelliktir. Eğer INSERT deyimi içerisinde o alana ait bir kayıt girilmese bile burada belirlediğimiz değeri otomatik olarak o Cloumn içine kaydedecektir.

Length: 

Length, Karakter ve numerik tipindeki verilerin maksimum alabileceği uzunluğu belirtir.  Örneğin navchar(50) o alanın 50 karakterlik maksimum uzunluğa sahip olabileceğini belirtmektedir.

Collation:

Collation, SQL Server’ın destekleyeceği dilin ve dillere özel karakter yapılarının belirlenmesini sağlayan özelliktir. Yani Siz veri tabanınızda Türkçe karakter seti kullanacaksanız Collation özelliğini ona göre seçmek durumudasınız. Bu özellik SQL Server da sütun, veritabanı ve sunucu seviyelerinde ayarlanabilmektedir.

Computed Column Specification:

Computed Column Specification, hesaplama yapılması gereken sütunlerın otomatik olarak girilen formüllere göre hesaplayıp değerleri atmasını sağlamaktadır.

  •    (Formula): bu alan formülün girileceği alandır.
  •    Is Persisted:  bu özellik veritabanından formülün mü yoksa hesaplanan değerin mi saklanması gerektiğini belirtir.
Örnek: 
Elimizde Column1 Column2 ve Column3 olmak üzere ü adet sütun olsun bu sütunlardan Column3’ün değeri Column1 ve Column2’nin çarpımları olsun. Bu durumda Computed Column Specification alanında Column1*Column2 yazmamız yeterli olacaktır.
 Computed Column

 

Bu örnek için column1 ve column2 ye değerleri aşağıdaki gibi atadığımızda karşımıza çıkan sonuç ise aşağıda göründüğü gibi olmaktadır.

Computed Column Specification result

Condensed Data Type:

Bu özellik Data Type ve Length özelliklerine göre alan ve maksimum karakter sayıları hakkında bilgi gösterir.
Condensed Data Type

Description: 

Sütun hakkında açıklama yazmamızı sağlar.

Deterministic:

Deterministic, seçilen sütunun veri tipinin kesin olarak tespit edilip edilemediğini ifade eder., Özellikle hesaplanan değerlerde dönen verilerin farklı tiplerde dönebildiği durumlarda kullanılır.

DTS-published:

DTS (SQL 2005) olarak yayınlanan sütunları belirtir.

Full-text Specification:

Değiştirilebilir olması için veri tipi Full-Text oalrak seçilmiş ve bir indeks belirtilmiş olması gerekmektedir.
  •    (Is Full-text Indexed): Eğer Full-Text indeksiniz mevcutsa evet olarak gözükecektir.
  •    Full-text Type Column: Eğer Full-Text indeks varsa bu sütun gözükecektir. Eğer yoksa None değerini alacaktır.
  •    Language:  İndeks Sütununun dilini belirtir özellikle sözcük ayraçları için önemlidir.
  •    Statistical Semantics: Full-text Index oluşturulurken Statistical Semantics özelliği açıldı ise evet açılmadıysa hayır olarak gösterilecektir.
Full-text index

Has Non-SQL Server Subscriber:

Oracle ya da DB2 gibi farklı veritabanı dillerinden aktarılan verileri belirtir. Eğer SQL Server dışından replike edilmiş bir veri alanı ise bu özellik “Yes” değerini alacaktır.

 

Identity Specification:

Alanın bir Identity olup olmadığını gösterir.

  •   (Is Identity): Alanın Identity alanı olup olmadığını belirtir. Identity alanlar sayılsa olup, tekil ve o tabloda sadece bir tane olabilen ve otomatik artan alanlardır.
  •    Identity Increment: artış miktarını belirler.
  •    Identity Seed: İlk Satıra verilecek olan otomatik değerdir. Varsayılan “1” olarak gelir.

Indexable: 

İndex oluşturulup oluşturulmadığını geliştiricinin görmesini sağlar.

Is Sparse:

SQL Server 2008 ile birlikte gelen bu özellik, Null değeri alan alanlar için depolama alanı kullanılmasını engellemektedir.

Is Columnset:

Sparse Column içinde Null olmayan bir değer girildiğinde Bu değerin XML olarak saklanabilmesini sağlayan özelliktir.

  • Her tabloda sadece bir adet Cloumnset alan olabilir.
  • Kısıtlama yada varsayılan değer almazlar.
  • Bu alan için XML data tipi kullanılmalıdır.
 

 Merge-Published:

Sütunun Merge (birleştirme) edilerek replike edildiği durumlarda “Yes” değerini olan ve kullanıcı tarafından müdahale edilemeyen özelliktir.

Not for Replication:

Genellikler Identity alanlarında orijinal Identity verilerinin tutulması için kullanılan ve Replikasyonda kullanılmaması gereken sütunlarda kullanılır. Eğer Replikasyon kullanılması gerekiyor ve bir sütun Identity özelliğine sahip ise mutlaka bu özelliğin de “Yes” olması gerekmektedir.

Replicated:

Sadece SQL Server 2005’te mevcut olan özellik Replike edilmiş sütunları gösterir.

RowGuid:

Otomatik olarak unique identity değer oluşturmak için kullanılan özelliktir. Sütunun veri tipi uniqueidentifer olduğu durumlarda gözükür.

Örnek: Elimizdeki tabloda Column4’ü RowGuid özelliği aktif edilen bir Column olsun.

RowGuid

 

Aşağıdaki verilerle INSERT deyimini çalıştırdığımızda

Sonuç olarak ise aşağıda gördüğümüz gibi Column4 benzerbir bir ID olarak doldurulmakta.

rowguid result

Size:

Sütuna girilecek her kayıt için ne kadar yer ayrılması gerektiğini belirtir.

Örneğin aşağıda tarih zaman verileri için kullanılan alanların olması gerektiği boyutları listeleyen tabloya bakabilirsiniz.

Data TypeStorage Space
smalldatetime4 bytes
datetime8 bytes
datetime26 to 8 bytes
datetimeoffset8 to 10 bytes
date3 bytes
time3 to 5 bytes

Bu makalede SQL Server’da tablolalarla uğraşırken en çok karşılaşacağınız Sütun özelliklerine değinmiş olduk. İlerleyen günlerde yine fırsat buldukça bu tarz makalelere daha fazla zaman ayırmayı istiyorum.

 

 

Bu yazıyı paylaş

Benzer Yazılar

7 Yorum

  1. Serkan Şahin

    20 Aralık 2013 tarihinde, saat 9:10

    Adaş müthiş açıklamışsın gerçekten. bir yerde takılmıştım. Sayende buldum. Teşekkürler

  2. Serkan

    21 Aralık 2013 tarihinde, saat 2:31

    Rica ederim adaş işine yaramasına sevindim.

  3. İbrahim ERDOĞAN

    22 Ocak 2014 tarihinde, saat 5:04

    Gerçekten çok güzel bir açıklama olmuş her şey tek tek açıklanmış . Keşke daha önce rastlasa idim bu sayfaya … Hocam yayınlanmış bir kitabınız var mı ?

  4. Serkan

    22 Ocak 2014 tarihinde, saat 14:49

    Merhaba İbrahim, teşekkür ederim beğenmene sevindim. Şu an için yok maalesef belki ileride. ;)

  5. Ramazan

    27 Nisan 2014 tarihinde, saat 16:13

    identity column hakında bilgi verebilir misiniz?

  6. Ramazan

    27 Nisan 2014 tarihinde, saat 16:15

    identity column hakkında bilgi verebilir misinz?

  7. Serkan

    28 Nisan 2014 tarihinde, saat 10:33

    @Ramazan identity column’dan kastın identity özelliği olsa gerek. “Identity” anlam olarak tanım olarak kimlik anlamına gelir ki SQL için o verinin erişilebilirliğini ve tekilliğini sağlayabilmek adına benzersiz bir değer üretilmesini sağlayan özelliktir. Her tabloda en az bir tane identity özelliğine sahip column olması o veriyi diğer verilerden tamamen ayrılmasını ve daha sonra o veriye daha hızlı ve kolay erişebilmeni sağlamaktadır. Identity Column; Column özellikleri penceresinden “is identity” özelliğinin “Evet” olarak ayarlanması ile sağlanabilir burada dikkat edilecek bir diğer hususta “Seed” ve “Increment” özellikleridir. Eğer increment özelliği evet yapılırsa bu değer otomatik olarak arttırılacaktır. Seed değeri ise başlangıç değeri olarak belirlenecektir.

Cevap Yaz

E-posta adresin paylaşılmayacaktır.İşaretli alanlar zorunludur. *

Social Media Auto Publish Powered By : XYZScripts.com