Sql server'da veri tipleri nelerdir?

ergin (2539) 11 yıl önce sordu

Sql server' kullanılan veri tipleri nelerdir? veri tipleri hakkında bilgi verebilir misiniz?

Toplam 1 cevap


ergin (2539) 11 yıl önce cevapladı

Sql server'da veritabanı oluştururken veri tiplerinin seçimi çok önemlidir. İhtiyacımızı karşılayan en uygun veri tipini seçmemiz hem performans hem de kullanılan alan açısından önemlidir.

Sql server'da kullanılan veri türleri şunlardır:

1. Tam sayısallar

bit: 1 bayt yer kaplar. 1 ve 0 değerlerini alır. true/false değerlerini bu tipte saklayabiliriz

tinyint: 1 bayt yer kaplar. 0 ile 255 arası tam sayıları tutar.

smallint: 2 bayt yer kaplar. -32.768 ile 32.767 arası tam sayıları tutar.

int: 4 bayt yer kaplar. -2.147.483.648 ile 2.147.483.647 arası tam sayıları tutar.

bigint: 8 bayt yer kaplar. -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arası tam sayıları tutar.

smallmoney: 4 bayt yer kaplar. -214.748,3648 ile 214.748,3647 arası ondalık sayıları tutar. Virgülden sonra 4 basamak alır. Parasal verileri smallmoney veri tipinde saklayabiliriz.

money: 8 bayt yer kaplar. kaplar. -922.337.203.685.477,5808 ile 922.337.203.685.477,5807 arası ondalık sayıları tutar. Virgülden sonra 4 basamak alır. Parasal verileri money veri tipinde saklayabiliriz.

decimal ve numeric: kapladığı alan kullanılan basamak sayısına göre değişir. –10^38 +1 den 10^38 – 1 e kadar olan ondalık sayıları tutar. numeric ile decimal birebir aynı veri tipidir.

2. Yaklaşık Sayısallar

float: kullanılmak istenen boyuta göre ortalama değer alır. float(n) şeklinde kullanılır. mesela virgülden sonra 20 bitlik bir alan kullanılmasını istiyoruz. o zaman float(20) olarak yazılır ve verdiğimiz bu boyuta göre kaydetmek istediğimiz sayı yuvarlanır. kesin değer değil de yaklaşık değer kaydedilmiş olur. n kısmı 1 ile 53 arasında olmalıdır.

real: float(24) ile aynı özelliktedir. 4 bayt yer kaplar. – 3.40E+38 ile -1.18E-38, 0 ve 1.18E-38 ile 3.40E+38 arası ondalık sayıları tutar.

3. Tarih ve Saat

date: YYYY-MM-DD şeklinde tarihi tutar. 3 bayt yer kaplar. 0001-01-01 ile 9999-12-31 arası tarih değerlerini saklar.

datetime: YYYY-MM-DD hh:mm:ss[.mmm] şeklinde tarihi tutar (2011-01-21 12:35:29.123 gibi).

datetime2: datetime göre daha hassas şekilde YYYY-MM-DD hh:mm:ss[.nnnnnnn] tarih tutar (2011-01-21 12:35:29.1234567 gibi).

smalldatetime: YYYY-MM-DD hh:mm:ss şeklinde tarih tutar.

time: sadece saati hh:mm:ss[.nnnnnnn] şeklinde tutar. 00:00:00.0000000 ile 23:59:59.9999999 arası değer alır. datetime2′de olduğu gibi time(n) şeklinde n değerini belirleyebiliyoruz. sadece time olarak kullanılırsak varsayılan n değeri 7′dir.

datetimeoffset: kullanımı ve tarih aralığı datetime2 ile aynıdır. Ülkelere göre değişen zaman farkını da tutmamıza olanak sağlar. Yaptığımız uygulamada farklı ülkelerin tarih ve saat bilgilerini tutuyorsak bu veri tipini kullanabiliriz. datetimeoffset(n) şeklinde kullanılır.

4. Karakter Dizeleri

char: sabit uzunlukta karakter dizilerini tutar. char(n) şeklinde kullanılır. n karakter sayısıdır ve 1 ile 8000 arasında değer alır.

varchar: sabit uzunlukta karakter dizilerini tutar. varchar(n) şeklinde kullanılır. n karakter sayısıdır ve 1 ile 8000 arasında değer alır. belirlediğimiz n değeri alabileceği maksimum karakter sayısıdır. varchar(MAX) şeklinde kullanırsak maksimum 8000 karakter değil de maksimum 2,147,483,647 karakter veri girilebilir.

text: varchar(max) ile aynı özelliktedir. maksimum 2,147,483,647 karakter veri girilebilir.

5. Unicode Karakter Dizeleri

nchar: char ile kullanımı aynıdır. char’dan farklı olarak unicode karakterleri de saklayabilir. nchar(n) şeklinde kullanılır ve n değeri 1 ile 4000 arasındadır.

nvarchar: varchar ile kullanımı aynıdır. varchar’dan farklı olarak unicode karakterleri de saklayabilir. nvarchar(n) şeklinde kullanılır ve n değeri 1 ile 4000 arasındadır.

ntext: nvarchar(max) ile aynı özelliktedir. maksimum 1,073,741,823 karakter veri girilebilir. microsoft bu veri tipini gelecek versiyonlarda kaldıracağı için kullanılması önerilmez. yerine nvarchar(MAX) kullanabilirsiniz.

Not: Eğer veritabanımızdaki kayıtlarda birden fazla dil kullanılacaksa veya veritabanının dil seçeneğinden (collation) farklı bir dil ile kayıt yapılacaksa unicode karakter veri tipleri kullanılmalıdır.

6. İkili Dizeler

binary: dosyaları (binary data) saklamak için kulanılır. binary(n) şeklinde n değeri 1 ile 8000 arasında değer alır. n bayt kadar yer kaplar.

varbinary: dosyaları (binary data) saklamak için kullanılır. binary’den farklı olarak boyutu kaydedilen dosyanın boyutuna göre değişir. varbinary(n) şeklinde n değeri 1 ile 8000 arasında değer alır. varbinary(MAX) olarak kullanıldığında maksimum 2,147,483,647 bayt (2 GB) büyüklüğünde dosya kaydedilebilir.

image: dosyaları (binary data) saklamak için kullanılır. maksimum 2,147,483,647 bayt (2 GB) büyüklüğünde dosya saklayabilir.

7. Diğer Veri Türleri

uniqueidentifier: 6F9619FF-8B86-D011-B42D-00C04FC964FF gibi bir GUID tipindeki verileri tutar. Guid, harf ve sayılardan oluşan eşsiz bir datadır. İki Guid’in birbiri ile eşit olmayacağı garantidir.

timestamp: girilen kaydın (satırın) versiyon numarası gibidir (0x00000000000007D3). her satırda değişir ve satır güncellendiğinde de değişir. Tabloda sadece bir alan timestamp olabilir. tarih ve saat tutmak için kullanılmaz.

xml: <ROOT><a>111</a></ROOT> şeklinde xml dataları saklar ve tablo ve satırlarda sorgu yapmadan, query() metoduyla, kaydettiğimiz xml’in içindeki datalara ulaşabiliriz.

sql_variant: farklı veri tiplerindeki değişkenleri kaydedebileceğimiz bir alan sağlar. maksimum boyutu 8016 bayt’tır. varchar(MAX), nvarchar(MAX), varbinary(MAX), text, ntext, image, timestamp, sql_variant, hierarchyid, geography, geometry ve kullanıcı tarafından oluşturulan veri tipleri haricinde diğer bütün veri tiplerini saklayabilir.