create - ¿Cuál es la diferencia entre MySQL BOOL y los tipos de datos de columna BOOLEAN?
sql data types (4)
Estoy usando la versión 5.1.49-1ubuntu8.1 de MySQL. Me permite definir columnas de dos tipos de datos diferentes: BOOL
y BOOLEAN
. ¿Cuáles son las diferencias entre los dos tipos?
Ambos son sinónimos de TINYINT (1) .
Como se establece en otros comentarios, son sinónimos de TINYINT (1).
* Entonces, ¿por qué se molestan en diferenciar entre bool, boolean, tiny * int (1)?
Mayormente semántica.
Bool y Boolean: MySQL los convierte por defecto al tipo tinyint. Según una declaración de MySQL hecha en el momento de escribir estas líneas, "pretendemos implementar un manejo de tipo booleano completo, de acuerdo con el estándar SQL, en una futura versión de MySQL".
0 = FALSO 1 = VERDADERO
TINYINT: Ocupa un byte; oscila entre -128 y +127; o, 0 - 256.
Comúnmente mencionado en esta comparación: Después de MySQL 5.0.3 - Bit: usa 8 bytes y almacena solo datos binarios.
Una cosa que acabo de notar: con una columna definida como BOOL en MySql, Spring Roo genera correctamente el código Java para desmarcar el valor de un booleano, por lo que presumiblemente se especifica que BOOL puede agregar algún valor, incluso si solo tiene la naturaleza de una pista sobre el uso previsto de la columna.
revise la descripción general de los documentos numéricos de MySQL:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html