What's the difference between MySQL BOOL and BOOLEAN column data types? What's the difference between MySQL BOOL and BOOLEAN column data types? mysql mysql

What's the difference between MySQL BOOL and BOOLEAN column data types?


They are both synonyms for TINYINT(1).


As established in other comments, they're synonyms for TINYINT(1).

*So, why do they bother differentiating between bool, boolean, tiny*int(1)?

Mostly semantics.

Bool and Boolean: MySQL default converts these to the tinyint type. Per a MySQL statement made around the time of this writing, "We intend to implement full boolean type handling, in accordance with standard SQL, in a future MySQL release."

0 = FALSE1 = TRUE

TINYINT: Occupies one byte; ranges from -128 to +127; or, 0 – 256.


Commonly brought up in this comparison:After MySQL 5.0.3 -- Bit: Uses 8 bytes and stores only binary data.


One thing I just noticed - with a column defined as BOOL in MySql, Spring Roo correctly generates Java code to unmarshall the value to a Boolean, so presumably specifying BOOL can add some value, even if it's only in the nature of a hint about the intended use of the column.