Bir sütunun veri türü, sütunun hangi değeri tutabileceğini tanımlar: tamsayı, ondalıklı sayı, karakter, para, tarih ve saat, true-false vb.
MySQL Veri Tipleri
Bir veritabanı tablosundaki her sütunun bir ad ve bir veri türüne sahip olması gerekir.
Bir SQL geliştiricisi, bir tablo oluştururken her sütunda ne tür verilerin depolanacağına karar vermelidir. Veri türü, SQL’in her sütunda ne tür verilerin beklendiğini anlaması için bir kılavuzdur ve ayrıca SQL’in depolanan verilerle nasıl etkileşime gireceğini tanımlar.
MySQL’de üç ana veri türü vardır: string, sayısal ve tarih-saat.
String Veri Türleri
Veri Türü | Açıklama |
---|---|
CHAR(boyut) | SABİT uzunlukta bir dize (harfler, sayılar ve özel karakterler içerebilir). boyut parametresi, sütun uzunluğunu karakter olarak belirtir. 0 ile 255 arasında olabilir. Varsayılan değer 1’dir. |
VARCHAR(boyut) | DEĞİŞKEN uzunlukta bir dize (harfler, sayılar ve özel karakterler içerebilir). boyut parametresi, karakter cinsinden maksimum sütun uzunluğunu belirtir. 0 ile 65535 arasında olabilir |
BINARY(boyut) | CHAR() işlevine eşittir, ancak ikili bayt dizelerini depolar. boyut parametresi, sütun uzunluğunu bayt cinsinden belirtir. Varsayılan 1’dir |
VARBINARY(boyut) | VARCHAR() işlevine eşittir, ancak ikili bayt dizelerini depolar. size parametresi, bayt cinsinden maksimum sütun uzunluğunu belirtir. |
TINYBLOB | BLOB’lar için (İkili Büyük Nesneler). Maksimum uzunluk: 255 byte |
TINYTEXT | Maksimum 255 karakter uzunluğunda bir dize tutar. |
TEXT(boyut) | Maksimum uzunluğu 65.535 bayt olan bir dize tutar. |
BLOB(boyut) | BLOB’lar için (İkili Büyük Nesneler). 65.535 byte’a kadar veri tutar |
MEDIUMTEXT | Maksimum uzunluğu 16.777.215 karakter olan bir dize tutar |
MEDIUMBLOB | BLOB’lar için (İkili Büyük Nesneler). 16.777.215 bayta kadar veri tutar |
LONGTEXT | En fazla 4,294,967,295 karakter uzunluğunda bir dize tutar |
LONGBLOB | BLOB’lar için (İkili Büyük Nesneler). 4,294,967,295 bayta kadar veri tutar |
ENUM(val1, val2, val3, …) | Olası değerler listesinden seçilen, yalnızca bir değere sahip olabilen bir dize nesnesi. Bir ENUM listesinde en fazla 65535 değer listeleyebilirsiniz. Listede olmayan bir değer girilirse, boş bir değer girilecektir. Değerler girdiğiniz sıraya göre sıralanır |
SET(val1, val2, val3, …) | Olası değerler listesinden seçilen, 0 veya daha fazla değere sahip olabilen bir dize nesnesi. Bir SET listesinde 64 adede kadar değer listeleyebilirsiniz. |
Sayısal Veri Türleri
Veri Türü | Açıklama |
---|---|
BIT(boyut) | Bir bit değeri türü. Değer başına bit sayısı boyut olarak belirtilir. Boyut parametresi 1 ile 64 arasında bir değer alabilir. Boyut için varsayılan değer 1’dir. |
TINYINT(boyut) | Çok küçük bir tam sayı. İmzalı aralık -128 ila 127 arasındadır. İmzasız aralık 0 ila 255 arasındadır. Boyut parametresi maksimum görüntüleme genişliğini belirtir (255’tir). |
BOOL | Sıfır yanlış olarak kabul edilir, sıfır olmayan değerler doğru olarak kabul edilir. |
BOOLEAN | BOOL’a eşit |
SMALLINT(boyut) | Küçük bir tam sayı. İmzalı aralık -32768 ile 32767 arasındadır. İmzasız aralık 0 ila 65535 arasındadır. Boyut parametresi maksimum görüntüleme genişliğini belirtir (255’tir). |
MEDIUMINT(boyut) | Orta bir tam sayı. İşaretli aralık -8388608 ile 8388607 arasındadır. İmzasız aralık 0 ile 16777215 arasındadır. Boyut parametresi maksimum görüntüleme genişliğini belirtir (255’tir). |
INT(boyut) | Orta bir tam sayı. İmzalı aralık -2147483648 ile 2147483647 arasındadır. İmzasız aralık 0 ila 4294967295 arasındadır. Boyut parametresi maksimum görüntüleme genişliğini (255 olan) belirtir. |
INTEGER(boyut) | INT’ye (size) eşittir |
BIGINT(boyut) | Büyük bir tam sayı. İşaretli aralık -9223372036854775808 ile 9223372036854775807 arasındadır. İmzasız aralık 0 ile 18446744073709551615 arasındadır. Boyut parametresi maksimum görüntüleme genişliğini belirtir (255’tir). |
FLOAT(boyut, d) | Kayan noktalı bir sayı. Toplam basamak sayısı boyut olarak belirtilir. Ondalık noktadan sonraki basamak sayısı, d parametresinde belirtilir. Bu sözdizimi MySQL 8.0.17’de kullanımdan kaldırılmıştır ve gelecekteki MySQL sürümlerinde kaldırılacaktır. |
FLOAT(p) | Kayan noktalı bir sayı. MySQL, elde edilen veri türü için FLOAT veya DOUBLE kullanılıp kullanılmayacağını belirlemek için p değerini kullanır. P0 ile 24 arasındaysa veri türü FLOAT() olur. P25 ile 53 arasındaysa, veri türü DOUBLE() olur |
DOUBLE(boyut, d) | Normal boyutlu bir kayan noktalı sayı. Toplam basamak sayısı boyut olarak belirtilir. Ondalık noktadan sonraki basamak sayısı, d parametresinde belirtilir. |
DOUBLE PRECISION(boyut, d) | |
DECIMAL(boyut, d) | Kesin bir sabit nokta numarası. Toplam basamak sayısı boyut olarak belirtilir. Ondalık noktadan sonraki basamak sayısı, d parametresinde belirtilir. Boyutiçin maksimum sayı 65’tir.diçin maksimum sayı 30’dur.Boyutiçin varsayılan değer 10’dur.diçin varsayılan değer 0’dır. |
DEC(boyut, d) | Equal to DECIMAL(size,d) |
Not: Tüm sayısal veri türlerinin ek bir seçeneği olabilir: UNSIGNED veya ZEROFILL. UNSIGNED seçeneğini eklerseniz, MySQL sütun için negatif değerlere izin vermez. ZEROFILL seçeneğini eklerseniz, MySQL otomatik olarak UNSIGNED niteliğini de sütuna ekler.
Tarih ve Saat Veri Tipleri
Veri Türü | Açıklama |
---|---|
DATE | Tarih. Biçim: YYYY-AA-GG. Desteklenen aralık ‘1000-01-01’ ile ‘9999-12-31’ arasındadır |
DATETIME(fsp) | Bir tarih ve saat kombinasyonu. Biçim: YYYY-AA-GG ss:dd:ss. Desteklenen aralık ‘1000-01-01 00:00:00’ ile ‘9999-12-31 23:59:59’ arasındadır. Otomatik başlatma ve geçerli tarih ve saate güncelleme almak için sütun tanımına DEFAULT ve ON UPDATE eklenmelidir. |
TIMESTAMP(fsp) | Bir zaman damgası. TIMESTAMP değerleri, Unix döneminden (‘1970-01-01 00:00:00’ UTC) bu yana geçen saniye sayısı olarak saklanır. Biçim: YYYY-AA-GG ss:dd:ss. Desteklenen aralık, ‘1970-01-01 00:00:01’ UTC ile ‘2038-01-09 03:14:07’ UTC arasındadır. Otomatik başlatma ve geçerli tarih ve saate güncelleme, sütun tanımında DEFAULT CURRENT_TIMESTAMP ve ON UPDATE CURRENT_TIMESTAMP kullanılarak belirtilebilir. |
TIME(fsp) | Zaman. Biçim: ss:dd:ss. Desteklenen aralık ‘-838:59:59’ ile ‘838:59:59’ arasındadır |
YEAR | Dört basamaklı biçimde yıl. Dört basamaklı biçimde izin verilen değerler: 1901 – 2155 ve 0000. MySQL 8.0, yılı iki basamaklı biçimde desteklemez. |