Какая разница между типами данных столбцов MySQL BOOL и BOOLEAN?

Я использую MySQL версии 5.1.49-1ubuntu8.1. Это позволяет мне определять столбцы двух разных типов данных: BOOL и BOOLEAN. Каковы различия между этими двумя типами?

Ответ 1

Они оба являются синонимами для TINYINT (1).

Ответ 2

Как указано в других комментариях, они являются синонимами для TINYINT (1).

* Итак, почему они хотят различать bool, boolean, tiny * int (1)?

В основном семантика.

Bool и Boolean: MySQL по умолчанию преобразует их в тип tinyint. За выражение MySQL, сделанное во время написания этой статьи, "Мы намерены реализовать полную обработку логических типов в соответствии со стандартным SQL в будущей версии MySQL".

0 = FALSE 1 = TRUE

TINYINT: занимает один байт; варьируется от -128 до +127; или 0 - 256.


Общепринятый в этом сравнении: После MySQL 5.0.3 - бит: использует 8 байтов и сохраняет только двоичные данные.

Ответ 3

Одна вещь, которую я только что заметил - с столбцом, определенным как BOOL в MySql, Spring Roo правильно генерирует Java-код, чтобы развязать значение с булевым, поэтому предположительно указание BOOL может добавить некоторое значение, даже если оно только в природе намека на предполагаемое использование столбца.