MySQL sürüm 5.1.49-1ubuntu8.1 kullanıyorum. İki farklı veri türünün sütunlarını tanımlamama izin veriyor: BOOL
ve BOOLEAN
. İki tür arasındaki farklar nelerdir?
Yanıtlar:
Diğer yorumlarda belirtildiği gibi, TINYINT (1) ile eşanlamlıdırlar.
* Öyleyse neden bool, boolean, tiny * int (1) arasında ayrım yapmakla uğraşıyorlar ?
Çoğunlukla anlambilim.
Bool ve Boolean: MySQL varsayılanı bunları tinyint türüne dönüştürür. Bu yazının yazıldığı sırada yapılan bir MySQL ifadesine göre, "Gelecekteki bir MySQL sürümünde standart SQL'e uygun olarak tam boole türü işlemeyi uygulamayı planlıyoruz."
0 = YANLIŞ 1 = DOĞRU
TINYINT: Bir bayt kaplar; -128 ile +127 arasında değişir; veya 0 - 256.
Bu karşılaştırmada sıkça dile getirilen: MySQL 5.0.3'ten Sonra - Bit: 8 bayt kullanır ve yalnızca ikili verileri depolar.
BOOL
ve BOOLEAN
?
Bit: Uses 8 bytes and stores only binary data.
yanlış bilgidir. Tablonuza bir bitlik sütun eklediğinizde, sadece tek bir biti değil, her kayıtta tam bir bayt kaplayacaktır. İkinci bir bit sütunu eklediğinizde, aynı baytta saklanacaktır. Dokuzuncu bit sütunu, ikinci bir depolama baytı gerektirecektir.
Sayısal türlerin MySQL belgelerine genel bakışını kontrol edin:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html