1. Ana Sayfa
  2. Programlama
  3. MySQL Veri Tipleri

MySQL Veri Tipleri

MySQL Veri Tipleri

MySQL Veri Tipleri- Veri tabanlarında bilgiler tablolar içerisinde tutulmaktadır. Tablomuzu tasarlarken; kolonlarda yer alması gereken verileri belirlemeli ve bu verilere ait en uygun veri tipini seçmeliyiz. Bu veri tipi karakter olabileceği gibi sayısal bir değer veya tarih de olabilir.

Kullandığınız veri tabanı hangisi olursa olsun (MsSQL, Oracle, PostgreSQL, Access…), o veri tabanına ait veri tipleriyle haşır neşir olmanız gerekiyor. Bu içerikte MySQL’ e ait veri tiplerine değineceğiz.

Temelde 3 veri türünden bahsedebiliriz:

  • Integer (Sayısal)
  • Text (Alfasayısal)
  • Date – Time (Tarih -Zaman)

– MySQL Veri Tipleri –

MySQL Veri Tipleri
stackoverflow.com

Sayısal Veri Tipleri

  • TINYINT(boyut)  Alabileceği değerler  –128 ile 127 arasındadır. Unsigned (Sadece pozitif değerler girilecek) olarak tanımlı ise 0 ile 255 arasındadır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan ise 1 byte.
  • SMALLINT(boyut) : -32.768 ile 32.767 arasında değer alır. Unsigned tanımlı aralık 0 ile 65535 arasında değer alır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 2 byte.
  • MEDIUMINT(boyut) : -8.388.608 ile 8.388.607 arasında değer alır. Unsigned tanımlı aralık 0 ile 16777215 arasındadır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 3 byte.
  • INT(boyut)Alabileceği değerler  –2147483648 ile  2147483647 arasındadır. Unsigned tanımlı aralık 0 ile 4294967295 arasındadır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 4 byte.
  • BIGINT(boyut) : -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasında değer alır. “Boyut” ile alabileceği sınırı belirtebiliriz. Hafızada kapladığı alan: 8 byte.
  • FLOAT(boyut,d)Değer aralıkları;  –3.402823466E+38 ile –1.175494351E-38, 0 arası ve 1.175494351E-38 ile 3.402823466E+38 arasındadır. Küçük rakamlı virgüllü ifadeler için kullanılır. “Boyut” ile sayının (virgüllü kısmı dahil) alabileceği en fazla miktar belirtilirken, “d” ile virgülden sonra kaç basamak olacağı belirtilir. Örneğin, 32.658 sayısını saklayacağımız float türü bir sütun tanımlarken, FLOAT(5,3) olarak tanımlarız. Buradaki 5 rakamı, sayının tamamının (noktasız olarak) basamak uzunluğu, 3 rakamı ise noktadan sonraki hane sayısını ifade eder. Float veri türünde eğer ondalıklı hane daha uzun ise sayının yuvarlanma durumu oluşabilir. FLOAT(5,2) olarak tanımladığımız bir sütunda 275.199 sayısını saklamak istersek, MySQL otomatik olarak bu sayıyı 275.20 olarak saklayacaktır. Boyut değeri en fazla 23 olabilir. Unsigned olarak çalışmazlar. Hafızada kapladığı alan: 4 byte.
  • DOUBLE(boyut,d) Büyük noktalı sayı. Büyük rakamlı virgüllü ifadeler için kullanılır. “Boyut” ile sayının virgüllü kısmı dahil alabileceği en fazla miktar belirtilirken, “d” ile virgülden sonra kaç basamak olacağı belirtilir. Boyut değeri en fazla 53 olabilir. Unsigned olarak çalışmazlar. Hafızada kapladığı alan: 8 byte.
  • DECİMAL(boyut,d) : Double ‘ın yetmediği durumlarda, virgüllü ifadeler için kullanılır. “Boyut” ile sayının virgüllü kısmı dahil alabileceği en fazla miktar belirtilirken, “d” ile virgülden sonra kaç basamak olacağı belirtilir. Boyut değeri en fazla 65 olabilir. Hafızada kapladığı alan değişiklik gösterir.

Metinsel Veri Tipleri

  • CHAR(boyut) : Sabit sayıdaki karakterleri (harf, numara veya özel karakter) tutar. Parantez içindeki boyut uzunluğu belirtir. Char(5) tanımlı bir alana 2 karakterlik bir veri girerseniz 5 byte alan ayırır, yani tanımladığınız boyut kadar. Maksimum 255 karakter barındırabilir. Tekrar eden boşluklar değer alındığı zaman silinir. En fazla 8.000 karaktere kadar depolama yapar.
  • VARCHAR(boyut)Değişken sayıdaki karakterleri tutar. En fazla 8.000 karaktere kadar depolama yapar. Varchar(5) tanımlı bir alana 2 karakterlik bir veri girerseniz 2 byte alan ayırır. Buradan varchar ile char arasındaki farkı; char tanımlanan boyut kadar alan ayırırken, varchar girilen karakter boyutu kadar alan ayırır şeklinde ifade edebiliriz.
  • TINYTEXT : En fazla 255 karakter alır. (Boşluklar dahildir.)
  • TEXT : En fazla 65.535 karaktere kadar veri girilebilir. (Boşluklar dahildir.)
  • BLOB: Binary Long Objects – Binary yani ikili verilerin saklanacağı durumlarda kullanılır. En fazla 65.535 byte (yaklaşık 64 KB) veri saklanabilir.
  • MEDIUMTEXT : 16.777.215 karaktere kadar metinsel ifadeleri depolayabilir.
  • LONGTEXT :  4.294.967.295 karaktere kadar metinsel ifadeleri depolayabilir.
  • ENUM: Değer listesinden seçilebilecek her biri maksimum 65535 karakterli string değerler tutabilir. İhtimalli girişlerde kullanılabilir. Giriş önceliğine göre sıralama yapılır. Giriş formatına örnek: ENUM(‘X’,’Y’,’Z’,’F’).
  • SET: Yapısı ENUM’a benzemektedir. Ancak 64 taneye kadar giriş yapılabilir.

Tarih – Zaman Veri Tipleri

  • DATE : Desteklenen aralık  ‘1000-01-01’ ile ‘9999-12-31’ arasıdır. MySQL tarihleri YYYY-MM-DD biçiminde gösterir.
  • DATETIME : Desteklenen aralık ‘1000-01-01 00:00:00’ ile ‘9999-12-31 23:59:59’ arasıdır. MySQL DATETIME değerlerini ‘YYYY-MM-DD HH:MM:SS’ biçiminde gösterir.
  • TIMESTAMP : Desteklenen aralık ‘1970-01-01 00:00:00’ ile 2037 yılında herhangi bir zaman arasındadır. MySQL TIMESTAMP değerlerini YYYYMMDDHHMMSS biçiminde gösterir. Depolama biçimi DATETIME() ile aynıdır. Ancak yazdığınız program üzerinden bu alan veri gönderimi yapılmaz. O anki tarih ve saati otomatik olarak ekler bu nedenle, TIMESTAMP insert ve update işlemlerinde kullanışlıdır. Eğer elle bir tarih-saat eklenecekse o zaman veri tipi DATETIME() olarak ayarlanmalıdır.
  • TIME : Sadece saat verisi saklamak için kullanılır. Desteklenen aralık  ‘-838:59:59’ ile ‘838:59:59’ arasındadır. MySQL TIME değerlerini ‘HH:MM:SS’ biçiminde gösterir.
  • YEAR: 2 veya 4 basamaklı yıl bilgisini saklamak için kullanılır. Dört basamaklı verilerde 1901 ile 2155 arası değer saklanır. İki basamaklı verilerde ise 70 ile 69 (1970 ile 2069) arası değerler saklanır.

Kaynak

Yorum Yap

Yorum Yap

Yorumlar (2)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir