Я использую MySQL версии 5.1.49-1ubuntu8.1. Это позволяет мне определять столбцы двух разных типов данных: BOOL
и BOOLEAN
. В чем разница между двумя типами?
mysql
sqldatatypes
икостия
источник
источник
Как установлено в других комментариях, они являются синонимами TINYINT (1).
* Итак, почему они пытаются различать bool, boolean, tiny * int (1)?
В основном семантика.
Bool и Boolean: MySQL по умолчанию преобразует их в тип tinyint. Согласно заявлению MySQL, сделанному примерно во время написания этой статьи: «Мы намерены реализовать полную обработку логических типов в соответствии со стандартным SQL в будущей версии MySQL».
0 = ЛОЖЬ 1 = ИСТИНА
TINYINT: занимает один байт; колеблется от -128 до +127; или 0 - 256.
Обычно упоминается в этом сравнении: После MySQL 5.0.3 - Бит: использует 8 байтов и хранит только двоичные данные.
источник
BOOL
иBOOLEAN
?Bit: Uses 8 bytes and stores only binary data.
неверная информация. Когда вы добавляете битовый столбец в свою таблицу, он будет занимать целый байт в каждой записи, а не только один бит. Когда вы добавляете второй битовый столбец, он будет сохранен в том же байте. Для девятого битового столбца потребуется второй байт памяти.Я только что заметил одну вещь: со столбцом, определенным как BOOL в MySql, Spring Roo правильно генерирует Java-код для отмены маршалинга значения в логическое значение, поэтому, предположительно, указание BOOL может добавить некоторое значение, даже если это только намек на предполагаемое использование колонки.
источник
проверьте обзор документации MySQL для числовых типов:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
источник