logo

MySQL booleà

Un booleà és el tipus de dades més simple que sempre retorna dos valors possibles, vertader o fals. Sempre es pot utilitzar per obtenir una confirmació en forma de valor SÍ o No.

MySQL no conté el tipus de dades Boolean o Bool integrat. Proporcionen a TINYINT tipus de dades en lloc dels tipus de dades booleans o bools. MySQL considera el valor zero com a fals i el valor diferent de zero com a vertader. Si voleu utilitzar literals booleans, utilitzeu true o false que sempre s'avalua com a valor 0 i 1. El 0 i l'1 representen els valors enters.

Executeu la instrucció següent per veure els valors enters dels literals booleans:

 Mysql> Select TRUE, FALSE, true, false, True, False; 

Després de l'execució correcta, apareix el següent resultat:

MySQL booleà

Exemple booleà de MySQL

Podem emmagatzemar un valor booleà a la taula MySQL com a tipus de dades enter. Creem un estudiant de taula que demostri l'ús del tipus de dades booleà a MySQL:

 mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN ); 

A la consulta anterior, podem veure que el camp de passada es defineix com a booleà quan es mostra la definició d'una taula; conté TINIINT de la manera següent:

python genera uuid
 mysql> DESCRIBE student; 

MySQL booleà

Afegim dues files noves a la taula anterior amb l'ajuda de la consulta següent:

 mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false); 

Quan s'executa la consulta anterior, MySQL comprova immediatament el tipus de dades booleà a la taula. Si es troben els literals booleans, es convertiran en valors enters 0 i 1. Executeu la consulta següent per obtenir les dades de la taula de l'estudiant:

 Mysql> SELECT studentid, name, pass FROM student; 

Obtindreu la següent sortida on el literal vertader i fals es converteix en valors 0 i 1.

MySQL booleà

Com que MySQL sempre utilitza TINYINT com a booleà, també podem inserir qualsevol valor enter a la columna booleana. Executeu la següent declaració:

 Mysql> INSERT INTO student(name, pass) VALUES('Miller',2); 

Obtindreu el següent resultat:

MySQL booleà

En alguns casos, cal obtenir el resultat en literals veritables i falsos. En aquest cas, heu d'executar la funció if() amb la instrucció select de la següent manera:

 Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1; 

Donarà la següent sortida:

MySQL booleà

Operadors booleans de MySQL

MySQL també ens permet utilitzar operadors amb el tipus de dades booleà. Executeu la consulta següent per obtenir tot el resultat de l'aprovació de la taula Student.

 SELECT studentid, name, pass FROM student1 WHERE pass = TRUE; 

Aquesta instrucció retorna la sortida següent:

MySQL booleà

La instrucció anterior només retorna el resultat de la passada si el valor és igual a 1. Podem arreglar-ho mitjançant l' ÉS operador. Aquest operador valida el valor amb el valor booleà. La següent afirmació ho explica:

 SELECT studentid, name, pass FROM student1 WHERE pass is TRUE; 

Després d'executar aquesta instrucció, obtindreu el resultat següent:

MySQL booleà

Si voleu veure el resultat pendent, feu servir ÉS FALS o NO ÉS CERT operador com a continuació:

 SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE; 

Obtindreu la següent sortida:

MySQL booleà