SQL Server 2005 veri tipleri

Dark-Man

Kıdemli Üye
5 Ocak 2013
4,430
9
I Don't Know
Data tipleri bir kolona gireceğimiz verinin tipini sınırlandırırlar. Bazı durumlarda da verinin limitini (saylısal büyüklük ve küçüklük) belirerler. Veri tipinin seçilmesi bir database in hazırlanmasındaki en kritik aşamadır. Bir sutun için data tipi belirlenirken,depolamak istediğimiz değerlerin hepsine uygun bir tip seçmeliyiz ve bunu yaparken kullanabildiğimiz en küçük alanı kullanmalıyız. SQL Server data tipleri 7 kategoriden oluşur:

1. Exact Numeric: Sayıları eğer varasa ondalık kısımlarıyla birlikte depolayan veri tipleri
2. Approximate Numeric : Exact Numeric tipinin tutamadığı uzunluktaki ondalık sayıları tutan veri tipleri
3. Monetary : Parasal birimleri tutmak için kullanılan veri tipleri
4. Date and Time : Tarihsel değerlerin tutulduğu veri tipleri
5. Cahracter : Uzunluğuna göre karakterleri depolayan veri tipleri (kelimeler… gibi)
6. Binary : Binary tipli verileri tutmak için kullanılan veri tipleri (resim, mp3…gibi)
7. Special Purpose : Özelleştirilmesi gereken karmaşık veri tiplerini tutmak için tasarlanmış veri tipleridirleri

1. Exact Numeric Data Tipleri Nedir?

Bu veri tipleriyle tam sayılar veya ondalık sayılar tutlabilirler. Bu veri tipleriyle matematik işlemleride yapılabilir. Kapladıkları alana göre ve kapasitelerine gore 6 ya ayrılırlar:

Bigint = 8 bayt yer kaplar. (int: Integer(tamsayının kısaltması) Adından belli olduğu üzere tam sayıları tutar. Tutabileceği aralıkda -263 ile 263- 1 arasıdır. (Pek kullanılmaz)

Int= 4 bayt yer kaplar. Yine belirli aralıktaki tam sayıları tutarlar. Aralıkda -231 ile 231 - 1 dır. 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 butun sayıları tutar ama ondalık sayı için kullanılır. Neden? Çünkü kapladığı alan bakımından. Decimal içine parametre alır. Yani şöyle ki mesela decimal(4,2) diye bie değişken tanımladım, bu demek oluyorki önce 4 basamak yazıyorum ondan sonra sağdan 2 basamak sayıp virgülü koyuyorum.

Örnek: decimal(5,3) önce rastgele beş basamak sayı yazıyorum "12345" , şimdide 3 basamak ayırıyorum "12,345". Yani decimal(5,3) sayısı 2 basamaklıdır ve virgülden sonra 3 basamak bulundurur.

Numeric(p,s) = İşlev ve özellik bakımından decimal ile aynıdır.(Pek kullanılmaz)

2. Aproximate Numeric Data Tipleri Nedir?

Bu veri tiplerinde (zaten 2 tane var) 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 'ekadar olan küsürlü verileri tutar. 4 bayt yer tutar.

3. Monetary Data Tipleri Nedir?

Söyleyecek fazla bişey sanırım, adları üstünde; para yerine kullanacağımız değişkenler

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 'kadar olan sayıları tutabilir. 4 bayt yer kaplar.

4. Date and Time Data tipleri Nedir?

Tarih ve zamanı tutmak için kullanılan veri tipleri

Datetime= 1 Ocak 1753 'ten 31 Aralık 9999 'a kadar olan tarih aralığıı tutabilir. 8 bayt yer kaplar.

Smalldatetime= 1 Ocak 1900 'den 6 Haziran 2079 'a kadar olan tarih aralığını tutar. 4 bayt yer kaplar.

5. Character Data Tipleri Nedir?

Karakter data tipleri en çok kullanılan data tipleridir. Kelimelerin yerine daha doğrusu 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" önekleri getirilerek diğer data tipleri oluşturulmuştur. Kısaca bunlar ne demek bi bakalım.

Önce "n" varsa veri tipinin başında bu unicode karakterleride içeriyor demektir. Yani her dilde görüntülenebilir. Başında " n " olanlar olmayanlarına göre 2 kat daha fazla yer tutarlar (açıklayınca daha rahat görebilirsiniz).

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 boyle diyecek olursanız veri tipi varchar(5) değilde char(5) olsaydı ben içine tek bi karakter bile yazsam direk 5 baytlık alnı işgal edecekti. Şimdi diceksinizki o zaman ben hepsini varchar la yaparım. Ne kadar girersem o kadar yer kaplasın. Ama bu sizin yapacağınız sorgularda performans kaybetmenize sebep olabilir. Veri tiplerine geçelim..

Char(n) = Enfazla 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. Örnek: Northwind tablosundaki CustomerID ler (hepsi 5 karakterli)

Nchar(n) = Enfazla 4000 karakter alır. 2 ile 8000 bayt arası yer tutar. (unicode karakterleri yüzünden)

Varchar(n ) = Enfazla 8000 karakter içerir. 8000 bayta kadar yer tutabilir. Bu veri tipini girceğimiz değerin uzunluğu kesin belli olmadığında kullanabiliriz. Örnek: şehirlerin isimleri…

Nvarchar(n) = Enfazla 4000 karakter alır. 2 ile 8000 bayt arası yer tutar. (unicode karakterleri yüzünden)

Varchar(max) = 2Gb 'a kadar karakter alabilir. 1 073 741 824 karakter alabilir.

Nvarchar(max) = 2Gb 'a kadar karakter alabilir. 536 870 912 karakter alabilir. (unicode karakterleri yüzünden)

Text = varchar(max) ın aynı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 Nedir?

Bu data tiplerini anlatmanın bence en klay yolu bunları depoya benzetmektir. İçine tutabileceği kadar ne koysanız tutar.Örneğin mp3, resim, word belgesi…gibi. Bunlarda parametre alıyor ve yukardaki "var" olayı bunlarda da var. (alanı direk ayırmayıp, biz değer girdikçe artan olay) Zaten 4 tane var bunlardan.

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 Nedir?

Hepsinin adını yazayım ama 3 tanesine değineceğim sadece. Bit, timestamp, uniqueidentifier, sql_variant, cursor, table, Xml.

Bit= 0 veya 1 tam sayı değeri alan değişkenlerdir. Yani geriye true veya false bi 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. Tabiki 8000 bayta kadar.

Uniqueidentifier= 16 bayt yer kaplar. Global tek değişkenlerdir (GUID, Globally Unique Identifier).
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.