SQL Serverda data tipleri 7 kategoriye ayrılabilirler:
- Exact Numeric: Sayıları, varsa ondalık kısımlarıyla birlikte depolayan veri tipleri.
- Apprpximate Numeric: Exact Numeric tipinin tutamadığı uzunluktaki ondalık sayıları tutan veri tipleri.
- Monetary: Parasal birimleri tutmak için kullanılan veri tipleri.
- Date and Time: Tarihsel değerlerin tutulduğu veri tipleri.
- Cahracter: Uzunluğuna göre karakterleri depolayan veri tipleri (kelimeler.. gibi)
- Binary: Binary tipli verileri tutmak için kullanılan veri tipleri (resim, mp3… gibi)
- Special Purpose: Özelleştirilmesi gereken karmaşık veri tiplerini tutmak için tasarlanmış veri tipleridir.
1. Exact Numeric Data Tipleri
Bu veri tipleriyle tam sayılar veya ondalık sayılar tutulabilirler. Bu veri tipleriyle matematik işlemleri de yapılabilir. Kapladıkları alana göre ve kapasitelerine göre 6’ya ayrılırlar:
Bigint: 8 Bayt yer kalar. (int: Integer(tamsayının kısaltması) Adından beli olduğu üzere tam sayıları tutar. tutabileceği aralık -263 ile 263- 1 arasıdır. (Pek kullanılmaz)
Int: 4 Bayt yer kaplar. Yine belirli aralıktaki tam sayıları tutarlar. Aralık -231 ile 231 – 1 dir. En çok kullanılan veri tiplerinden biridir. Bizim için sadece bir tane olması gereken değerlere (ID lere) verilebilir.
Smallint: 2 Bayt yer kaplar. -215 ile 215 – 1 arasındaki değerleri tutar. (-32768 ile 32767 arası)
Tinyint: 1 bayt yer kaplar. 0’dan 255’e kadar olan sayıları tutarlar.
Decimal(p,s): Decimal ondalık veya tam bütün sayıları tutar ama kapladığı alan bakımından ondalık sayı için kullanılır.
Numeric(p,s): İşlev ve özellik bakımından decimal ile aynıdır. (Pek kullanılmaz)
2. Aproximate Numeric Data Tipleri
Bu veri tiplerinde amaç Decimal in tutamadığı büyüklükteki değerleri tutmaktır.
Float(n): -1,79E + 308’den 1,79E + 308’e kadar olan değerleri alabilir. Kapladığı alan içine aldığı “n” değerine göre değişir. (1<=n<=53 olmalı)
Real: Eski versiyonlarda kullanıldığı için bu versiyonda da kullanılmış. Bu da -3,40 + 38’den 3,40 +38’e kadar olan küsürlü verileri tutar. 4 bayt yer tutar.
3. Monetary Data Tipleri
Para yerine kullanılan değişkenlerdir.
Money: -922 337 203 685 47,.5808’den 922 337 203 685 477, 5807’ye kadar paraları tutabilir. 8 bayt yer kaplar.
Smallmoney: 214 748,3648’den 214 748,3647’e kadar olan sayıları tutabilir. 4 bayt yer kaplar.
4. Date and Time Data Tipleri
Tarih ve zamanı tutmak için kullanılan veri tipleri
Datetime: 1 Ocak 1753’ten 31 Aralık 9999’a kadar olan tarih aralığını tutabilir. 8 bayt yer kaplar.
Smalldatetime: 1 Ocak 1900’den 6 Haziran 2079’a kadar olan tarih aralığını tutabilir. 4 bayt yer kaplar.
5. Character Data Tipleri
Karakter data tipleri en çok kullanılan data tipleridir. Harflerin yerine kullanılır. Parametre alırlar. Aldıkları parametreler içerdikleri karakter sayısıdır. İsimlerinde genelde “char” kelimesi vardır. bunun başına “n” veya “var” ön ekleri getirilerek diğer data tipleri oluşturulmuştur.
Önce “n” varsa veri tipinin başında bu unicode karakterler içeriyor demekdir. Yani her dilde görüntülenebilir. Başında “n” olanlar olmayanlarına göre 2 kat daha fazla yer tutarlar.
Başında “var” olanlar ise içine aldıkları parametreye kadar genişletilebilirler. Örneğin varchar(5) direk olarak 5 baytlık yer ayırmaz, içine 3 harf yazarsak 3 bayt, 2 harf yazarsak 2 bayt yer ayırır. Bu neden böyle; veri tipi varchar(5) değilde char(5) olsaydı içine tek bir karakter bile yazsak direk 5 baytlık alanı işgal edecekti.
Char(n): En fazla 8000 karakter alabilir. Dolayısıyla maksimum 8000 bayt yer kaplar. Bu veri tipi içine girilecek olan karakter sayısı kesin belli olduğu zaman kullanılır.
Nchar(n): En fazla 4000 karakter alır. 2 ile 8000 bayt arası yer tutar. (Unicode karakterler yüzünden)
Varchar(n): En fazla 8000 karakter içerir. 8000 bayta kadar yer tutabilir. Bu veri tipini gireceğimiz değerin uzunluğu kesin belli olmadığında kullanabiliriz. Örnek: Şehir isimleri..
Varchar(max): 2 GB’a kadar karakter alabilir. 1 073 741 824 karakter alabilir.
Nvarchar(max): 2 GB’a kadar kadar karakter alabilir. 536 870 912 karakter alabilir. (Unicode karakterleri yüzünden)
Text: Varchat(max)ın anısı.
Ntext: nvarchar(max)ın aynısı. Bu text ve ntext çok fazla kullanılmıyor. Onların yerine varchar, char.. kullanılıyor..
6. Binary Data Tipleri
Bu data tiplerini anlatmanın bence en kolay yolu bunları depoya benzetmektir. İçine tutabileceği kadar ne koyarsanız tutar. Örneğin mp3, resim, word belgesi.. gibi. Bunlarda parametre alıyor ve yukarıdaki “var” olayı bunlarda da var. (Alanı direk ayırmayıp, biz değer girdikçe artan olay)
Binary(n): 8000 bayta kadar veri tutabilir.
Varbinary(n): 8000 bayta kadar veri tutabilir.
Varbinary(max): 2GB’a kadar veri tutabilir.
Image: 2GB’a kadar veri tutabilir. (image=varbinary(max))
7. Specialized Data Tipleri
Bit: 0 veya 1 tam sayı değeri alan değişkenlerdir. Yani geriye true veya false bir değer döndürür. Örneğin cinsiyette, evli-bekar, evet-hayır, var-yok gibi şekillerde kullanılabilir.
Sql_variant: bu gireceğimiz değerin çeşidini bilmediğimiz sütunlarda kullanabileceğimiz bir veri tipidir. Yani resim, string, sayı, table ne olduğunu bilmediğim şeyler yerine kullanabilirim. (8000 bayta kadar)
Uniqueidntifier: 16 Bayt yer kaplar. Global tek değişkenlerdir.(GUID, Globally Unique Identifier).