Merhaba bugün sizlere birçok veri tabanında ortak olan veri tiplerinden bahsedeceğim. Aşağıdaki veri tipleri Microsoft MsSQL Server üzerinden alınmıştır.
SQL Server Microsoft’a ait bilgi yönetimi ve depolama amacıyla kullanılan bir üründür. SQL Server ilişkisel veri tabanı yönetim sistemidir. İlişkisel veri tabanı yönetim sistemi kelimesini irdelediğimizde iki sonuç çıkartabiliriz. Birincisi SQL Server içinde depolanan veri birbirleri ile ilişkili veri tabanları içinde saklanır. İkincisi ise SQL Server bir yönetim sistemi değil veri tabanıdır.
Veri tipleri ve özelikleri aşağıdaki gibidir.
- bigint: Tam sayılar -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,808 arasındaki değerleri almaktadır.
- 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.
- bit: 0 ile 1 arasındaki değerlerini alır durum bilgisini saklamakta kullanılır.
- char(10): 10 karakter girmeye izin verir.
- 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). 8 bayt yer kaplar. 1753-01-01 00:00:00.000 ile 9999-12-31 23:59:59.999 arası tarih değerlerini saklar.
- datetime2: datetime göre daha hassas şekilde YYYY-MM-DD hh:mm:ss[.nnnnnnn] tarih tutar (2011-01-21 12:35:29.1234567 gibi). saniye bölümünün ondalık kısmında 7 basamağa kadar değer tutabilir. Bu değer sadece datetime2 olarak kullanıldığında varsayılan olarak 7 basamaktır.
- datetimeoffset(7): 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. YYYY-MM-DD hh:mm:ss[. nnnnnnn] [{+-}hh:mm] şeklinde tarihi tutar (22.01.2012 02:07:23.1234567 +03:00). Saat farkı -14:00 ile +14:00 arasında değer alır. Yaptığımız uygulamada farklı ülkelerin tarih ve saat bilgilerini tutuyorsak bu veri tipini kullanabiliriz. datetimeoffset(n) şeklinde kullanılır. n değeri 0 ile 2 arasında ise 8 bayt; 3 veya 4 ise 9 bayt; 5 ile 7 arasında ise 10 bayt yer kaplar. sadece datetimeoffset olarak kullanılırsak varsayılan n değeri 7′dir.
- decimal(18, 0): Decimal(precision,scale),precision ile anlamlı basamak sayısı ve scale ile de virgülden sonraki kaç basamağın dikkate alınacağını belirten bir veri tipidir.Anlamlı basamak sayısı 1 ile 38 arasında tanımlanabilir.Scale faktörü ise 0 <= s <= p ile ilişkiye sahiptir.
- 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.
- geography: Coğrafi veri tipi, Dünya yüzeyine ait bilgileri tutmakta kullanılır.
- geometry: X ve Y eksenindeki koordinat bilgilerini tutar.
- hierarchyid: Bir hiyerarşi içerisinde olan yapıları saklamak için kullanılılır.
- image: Grafik nesneleri için kullanılmaktadır.
- int: 4 bayt yer kaplar ve en çok kullanılan sayısal veri tipidir.
- 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.
- nchar(10): Char’dan farklı olarak unicode karakterleri de saklayabilir. nchar(n) şeklinde kullanılır ve n değeri 1 ile 4000 arasındadır. char’ın iki katı kadar (n x 2 bayt) yer kaplar.
- ntext: En fazla 2,147,483,647 karakter uzunluğunda değer alabilen veri türüdür. Unicode desteği vardır.
- numeric(18, 0): Numeric(precision,scale),precision ile anlamlı basamak sayısı ve scale ile de virgülden sonraki kaç basamağın dikkate alınacağını belirten bir veri tipidir.Anlamlı basamak sayısı 1 ile 38 arasında tanımlanabilir.Scale faktörü ise 0 <= s <= p ile ilişkiye sahiptir.Decimal ile aynıdır.
- nvarchar(50): Değişken uzunluktaki unicode veriler için kullanılır. En fazla 4.000 karakter (8.000 byte) tutabilir.
- nvarchar(MAX): Değişken uzunluktaki unicode veriler için kullanılır. En fazla 1.073.741.823 karakter (2 gigabyte) tutabilir.
- 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.
- smalldatetime: YYYY-MM-DD hh:mm:ss şeklinde tarih tutar. 4 bayt yer kaplar. 1900-01-01 00:00:00 ile 2079-06-06 23:59:59 arası tarih değerlerini saklar.
- smallint: 2 bayt yer kaplar. -32.768 ile 32.767 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.
- 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.
- text: varchar(max) ile aynı özelliktedir. maksimum 2,147,483,647 karakter veri girilebilir.
- time(7): 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. n değeri 0 ile 2 arasında ise 3 bayt; 3 veya 4 ise 4 bayt; 5 ile 7 arasında ise 5 bayt yer kaplar. sadece time olarak kullanılırsak varsayılan n değeri 7′dir.
- 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.
- tinyint: 1 bayt yer kaplar. 0 ile 255 arası tam sayıları tutar.
- 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.
- varbinary(50): 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): Maksimum 2,147,483,647 bayt (2 GB) büyüklüğünde dosya kaydedilebilir.
- varchar(50): 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. Karakter sayısı daha kısa veri girersek char gibi boşlukla tamamlanmaz.
- varchar(MAX): maksimum 2,147,483,647 karakter veri girilebilir.
- xml: xml dataları saklar ve tablo ve satırlarda sorgu yapmadan, query() metoduyla, kaydettiğimiz xml’in içindeki datalara ulaşabiliriz.
Temel sql server veri tiplerini öğrendikten sonra sql server komutlarına buradan göz atabilirsiniz.