¿Cuál es la diferencia entre los tipos de datos de columna MySQL BOOL y BOOLEAN?


88

Estoy usando MySQL versión 5.1.49-1ubuntu8.1. Me permite definir columnas de dos tipos de datos diferentes: BOOLy BOOLEAN. ¿Cuáles son las diferencias entre los dos tipos?

Respuestas:


136

Ambos son sinónimos de TINYINT (1) .


11
Lo que dice Adam. No hay un tipo BOOLEAN real en MySQL.
Mchl

25

Como se estableció 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 booleano: MySQL por defecto los convierte al tipo tinyint. Según una declaración de MySQL realizada en la época de este escrito, "Tenemos la intención de implementar el manejo completo de tipos booleanos, de acuerdo con SQL estándar, 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.


2
Esto realmente no responde a la pregunta. ¿Cuál es la diferencia entre BOOLy BOOLEAN?
finalmente,

7
Publicaciones anteriores ya habían establecido que ambos son sinónimos de TINYINT (1). Idealmente, la siguiente pregunta sería "¿Por qué, entonces, diferenciaron entre los tipos de datos?"
Sexta antes del

3
@Sixthfore la Bit: Uses 8 bytes and stores only binary data.información es incorrecta. Cuando agrega una columna de bits a su tabla, ocupará un byte completo en cada registro, no solo un bit. Cuando agrega una segunda columna de bits, se almacenará en el mismo byte. La columna del noveno bit requerirá un segundo byte de almacenamiento.
Kolyunya

4

Una cosa que acabo de notar: con una columna definida como BOOL en MySql, Spring Roo genera correctamente código Java para deshacer el valor de un booleano, por lo que presumiblemente especificar BOOL puede agregar algún valor, incluso si es solo en la naturaleza de una pista sobre el uso previsto de la columna.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.