09 December 2016

SQL Server Veri Tipleri

Tanımlı olan veri tiplerini aşağıdaki kategorilerde inceleyebiliriz:

– Karakter dizilimi (Character strings)

  • char: sabit uzulukta karakter verisi. maksimum uzunluğu/boyutu 8000 karakterdir. içindeki veri ne olursa olsun belirtildiği n değeri kadar yer kaplar.
  • varchar: değişken uzunlukta karakter verisi. maksimum uzunluğu/boyutu 8000 karakterdir. içerisinde belirtildiği string kadar yer kaplar.
  • varchar(max): varchar veri türü gibi görünür ve işler ancak dâhili yapı ve işlevselliği daha çok metin veri türü gibidir
  • text: eski versiyonları desteklemek amacıyla mevcut. bunun yerine varchar(max): kullanılır.

– Unicode karakter dizilimi (Unicode character strings)

  • nchar: varchar ile aynıdır. sadece unicode karakter de tutabiliyor.
  • nvarchar: char ile aynıdır. sadece unicode karakter de tutabiliyor.
  • nvarchar(max)

– Tarih ve saat (Date and time)

  • Datetime:
  • Smalldatetime:

Bu 2 veri türü arasındaki fark kapladıkları alandır. datetime 8 byte, smalldatetime sadece 4 byte kullanır. Smalldatetime’ın doğruluğu bir dakikadır ve 1 Ocak 1900’den 6 Haziran 2079’a kadar olan zamanı kapsar ki bu da yeterinden fazladır. Datetime’ın doğruluğu 3.33 milisaniyedir ve 1 Ocak 1753’ten 31 Aralık 9999’a kadar olan süreyi kapsar.

– Tahmini sayısal (Approximate numeric)
Ondalık sayılar genellikle tek veya çift kesinlik (single and double precision) olarak da bilinen real ve float veri türlerinde depolanır.

– Kesin sayısal (Exact numeric)

Ondalık veya sayısal veri türleri sayıları depolarken yaklaşıklık/tahmini kullanmazlar. Ne yazık ki gerçek ve float veri türlerine göre daha fazla yer/alan gerektirirler.

Ondalık bir sütun veya değişken tanımlandığında/belirtildiğinde basamağını ve doğruluğunu (scale and precision) belirtmelisiniz. SQL Server maximum 38 doğruluktaki sayıları depolayabilir. Basamak (scale) doğruluktan daha az ya da onunla eşit olabilir.

– Tam sayılar (Integer numbers)

  • int 4 bytes -2, 147, 483, 648 ile (-2G) s2, 147, 483, 647(26?1) arası
  • smallint 2 bytes -32768 (-32Ks) ile 32767 (32K-1) arası
  • tinyint 1 bytes 0 ile 255(28-1) arası
  • bigint 8 bytes -9,223,372,036,854,775,808 (-263) ile 9,223,372,036,854,775,807 (263-1) arası
  • bit 1 bit 0 ile 1 arası

– Parasal (Monetary)

  • money 8 bytes -922 milyar ile +922 milyar arasında değerler için kullanılır.
  • smallmoney 4 bytes -214 bin ile +214 bin arasında değerler için kullanılır.

– İkili (Binary)

binary and varbinary veri türleri 8000 byte bilgi ve resim, varbinary (max) 2 GB veri depolayabilir.

  • binary
  • varbinary
  • varbinary(max)
  • image

– Özel (Special)

Yukarıdaki kategorilere uymayan veri tipleridir.

  • Cursor: Kayıtlara bir sonuç kümesi (resultset) yerine, erişim için kullanılan bir değişken türüdür.
  • Table: Sadece metodun değerini geri döndürmek için local değişken olarak kullanılabilir.
  • Timestamp: Satır sürüm numarası.
  • Uniqueidentifier: Her çalışmada benzersiz bir 16 byte’lık 16’lı tabanda sayı üreten sayı türüdür.

– Kullanıcı Tanımlı Veri Türler: Sonradan tanımlanan veri tipleridir.