Un booleano es el tipo de datos más simple que siempre devuelve dos valores posibles, verdadero o falso. Siempre se puede utilizar para obtener una confirmación en forma de valor SÍ o No.
MySQL no contiene tipos de datos booleanos o bool integrados. Proporcionan un PEQUEÑO tipo de datos en lugar de tipos de datos booleanos o booleanos. mysql consideró el valor cero como falso y el valor distinto de cero como verdadero. Si desea utilizar literales booleanos, utilice verdadero o falso que siempre se evalúa como valor 0 y 1. El 0 y el 1 representan los valores enteros.
Ejecute la siguiente declaración para ver los valores enteros de los literales booleanos:
Mysql> Select TRUE, FALSE, true, false, True, False;
Después de una ejecución exitosa, aparece el siguiente resultado:
Ejemplo booleano de MySQL
Podemos almacenar un valor booleano en la tabla MySQL como un tipo de datos entero. Creemos una tabla estudiantil que demuestre el uso del tipo de datos booleano en MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
En la consulta anterior, podemos ver que el campo de paso se define como booleano al mostrar la definición de una tabla; contiene TINIINT de la siguiente manera:
comando táctil en linux
mysql> DESCRIBE student;
Agreguemos dos nuevas filas en la tabla anterior con la ayuda de la siguiente consulta:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Cuando se ejecuta la consulta anterior, MySQL busca inmediatamente el tipo de datos booleanos en la tabla. Si se encuentran los literales booleanos, se convertirán en valores enteros 0 y 1. Ejecute la siguiente consulta para obtener los datos de la tabla de estudiantes:
Mysql> SELECT studentid, name, pass FROM student;
Obtendrá el siguiente resultado donde el literal verdadero y falso se convierte en valores 0 y 1.
Dado que MySQL siempre usa TINYINT como booleano, también podemos insertar cualquier valor entero en la columna booleana. Ejecute la siguiente declaración:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Obtendrá el siguiente resultado:
En algunos casos, es necesario obtener el resultado en literales verdaderos y falsos. En ese caso, debe ejecutar la función if() con la instrucción select de la siguiente manera:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Dará el siguiente resultado:
Operadores booleanos de MySQL
MySQL también nos permite utilizar operadores con el tipo de datos booleanos. Ejecute la siguiente consulta para obtener todos los resultados aprobados de la tabla Student.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Esta declaración devuelve el siguiente resultado:
La declaración anterior solo devuelve el resultado del pase si el valor es igual a 1. Podemos solucionarlo usando el ES operador. Este operador valida el valor con el valor booleano. La siguiente declaración explica esto:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Después de ejecutar esta declaración, obtendrá el siguiente resultado:
Si desea ver el resultado pendiente, utilice ES FALSO o NO ES VERDAD operador como se muestra a continuación:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Obtendrá el siguiente resultado: