entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

El tipo de dato boolean nativo de mysql

Cuando ejecuto la siguiente sentencia:

create table ciertfalso ( valor boolean ) ;

¿Internamente de que tipo es el campo valor?

2 Respuestas

2votos

Peter Puntos150460

Es este:

Tinyint(1)

3votos

bl4z3r Puntos16850

Según el manual de MySql, las palabras clave bool y boolean son aliases de tinyint(1). Este utiliza 8 bits para almacenarse. Se debe entender que, 0 es falso y cualquiera valor diferente a cero es verdadero.

Desde la versión 5.0.3 en adelante, aparece un nuevo tipo de dato que es bit que solamente utiliza 1 bit para su almacenado. Este es el concepto más cercano a un resultado booleano que el anterior y solo se pueden almacenar el valor 0 y 1.

Hay que tener cuidado a hora de declarar estos campos, ya que si declaras que puede ser nulos, puede tener un triple estado. Algo parecido a un checkbox grisado.

PD: Tambien hay un walk-around con declaración del tipo de dato char(0) null que, al ser usado, el valor \0, '', carácter vacío o, más técnicamente, la referencia a un valor en memoria es verdadero y null o, técnicamente, la no referencia a un valor en memoria es falso.
El tamaño en memoria es el mismo es exactamente el mismo que el tipo de dato bit.
Una diferencia de que este tipo de declaración es que no acepta el triple estado dada la naturaleza de la asignación del valor.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta