SQL DERSLERİ

sql server 2005 veri tipleri

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 Serverda data tipleri 7 kategoriye ayrılabilirler: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 tipleridirleri1. Exact Numeric Data TipleriBu 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 TipleriBu 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 TipleriSöyleyecek fazla bişey sanırım, adları üstünde; para yerine kullanacağımız değişkenlerMoney= -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 tipleriTarih ve zamanı tutmak için kullanılan veri tipleriDatetime= 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 TipleriKarakter 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 TipleriBu 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 TipleriHepsinin 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).

Döküman Arama

Başlık :

Kapat