Post

2 - Veri Tipleri (Data Types)

2 - Veri Tipleri (Data Types)

Bu bölümde, SQL Server’ın kullanabileceği veri türlerini, veri aralıklarını, uzunluklarını ve (varsa) sınırlamaları anlatılacaktır.

2.1 - Tam Sayısallar

Tam sayısal veri türlerinin iki temel sınıfı vardır: Tam sayılar (Integer) ve sabit hassasiyet ve basamak sayısı (Fixed Precision and Scale)

Tam Sayı Veri Türleri

  • bit
  • tinyint
  • smallint
  • int
  • bigint

Integer hiçbir zaman kesirli kısım içermeyen ve her zaman sabit miktarda depolama alanı kullanan sayısal değerlerdir.

tam sayı veri türlerinin aralığı ve depolama boyutları bu tabloda gösterilmektedir:

Veri TipiAralıkKapladığı Miktar
bit0 - 11 bit
tinyint0 - 2551 byte
smallint-2^15 (-32,768) - 2^15-1 (32,767)2 byte
int-2^31 (-2,147,483,648) - 2^31-1 (2,147,483,647)4 byte
bigint-2^63 (-9,223,372,036,854,775,808) - 2^63-1 (9,223,372,036,854,775,807)8 byte

Sabit Hassasiyet ve Ölçek Veri Türleri

  • numeric
  • decimal
  • smallmoney
  • money

SQL Server’da “Fixed Precision and Scale” veri tipleri, sabit bir hassasiyet ve ölçek ile sayısal verileri temsil etmek için kullanılan veri tipleridir. Bu veri tipleri, özellikle finansal verileri veya diğer alanlarda hassas matematiksel hesaplamalar gerektiren durumlar için uygundur.

Bu veri türleri sayıları tam olarak temsil etmek için kullanışlıdır. Değerler belirtilen aralıklara sığabildiği sürece değerde yuvarlama sorunları yaşanmaz.

decimal ile numeric eşdeğerdir, aynıdır.

Veri TipiAralıkKapladığı Miktar
Decimal [(p [, s])] veya Numeric [(p [, s])]-10^38 + 1 - 10^38 - 1Hassasiyet tablosuna bakınız

precision toplam basamak sayısını belirtir.

scale virgülden sonraki basamak sayısını belirtir.

Ondalık veya sayısal bir veri türü tanımlarken precision [p] ve scale [s]’yi belirtmeniz gerekir. Bir precision belirtmezseniz, varsayılan precision 18’dir.

Scale, virgülden sonraki basamak sayısıdır. 0,00 ile 999,99 arasında bir sayı kaydetmeniz gerekiyorsa, precision olarak 5 (beş rakam) ve scale olarak 2 (virgülden sonra iki rakam) belirtmeniz gerekir. Varsayılan scale 0 sıfırdır.

Precision(Hassasiyet) Tablosu

AralıkKapladığı Miktar
1 - 95 byte
10 - 199 byte
20 - 2813 byte
29 - 3817 byte

Parasal Veri Türleri

Bu veri türleri özellikle muhasebe, finans ve diğer parasal veriler için tasarlanmıştır. Bu türlerin sabit bir ölçeği vardır. 4 - ondalık basamaktan sonra her zaman dört rakamı göreceksiniz. Çoğu para birimiyle çalışan çoğu sistem için, 2 ölçekli sayısal değer yeterli olacaktır.

Veri TipiAralıkKapladığı Miktar
money-922,337,203,685,477.5808 - 922,337,203,685,477.58078 byte
smallmoney-214,748.3648 - 214,748.36474 byte

2.2 - Yaklaşık Sayısal Veri Tipleri

  • float [(n)]
  • real

SQL Server’da, “Approximate Numerics” olarak bilinen yaklaşık sayısal veri tipleri bulunmaktadır. Bu veri tipleri genellikle kesirli sayıları veya hassasiyet gerektirmeyen sayıları temsil etmek için kullanılır. Bu veri türleri kayan nokta sayılarını depolamak için kullanılır. Eğer çok büyük sayıları veya virgülden sonra belirsiz sayıda basamak içeren sayıları işlemeniz gerekiyorsa, bunlar en iyi seçeneğiniz olabilir

Veri TipiAralıkKapladığı Miktar
float[(n)]-1.79E+308 - -2.23E-308, 0 ve 2.23E-308 - 1.79E+308(n) e bağlı
real-3.40E + 38 - -1.18E - 38, 0 ve 1.18E - 38 to 3.40E + 384 byte

Kayan sayılar için n değer tablosu. herhangi bir değer belirtilmemişse varsayılan değer 53 olacaktır.

Not: float(24) ile real eşittir.

n değeriAralıkKapladığı Miktar
1 - 247 digit4 byte
25 - 5315 digits8 byte

2.3 - Tarih ve Zaman

Bu türler SQL Server’ın tüm sürümlerinde bulunur.

  • datetime
  • smalldatetime

Bu türler SQL Server 2012’den sonraki tüm SQL Server sürümlerinde bulunmaktadır.

  • date
  • datetimeoffset
  • datetime2
  • time

2.4 - Karakter (metin, dizi)

  • char
  • varchar
  • text

2.5 - Unicode Karakter (metin, dizi)

  • nchar
  • nvarchar
  • ntext

2.6 - Binary (metin, dizi)

  • binary
  • varbinary
  • image

2.7 - Diğer Veri Tipleri

  • cursor
  • timestamp
  • hierarchyid
  • uniqueidentifier
  • sql_variant
  • xml
  • table
  • Spatial Types
This post is licensed under CC BY 4.0 by the author.