En Boolean er den enkleste datatype, der altid returnerer to mulige værdier, enten sand eller falsk. Det kan altid bruge til at få en bekræftelse i form af JA eller Nej værdi.
MySQL indeholder ikke indbygget boolsk eller boolsk datatype. De giver en TINYINT datatype i stedet for boolske eller boolske datatyper. MySQL betragtet værdi nul som falsk og værdi uden nul som sand. Hvis du vil bruge boolske bogstaver, skal du bruge sand eller falsk, der altid evalueres til 0 og 1 værdi. 0 og 1 repræsenterer heltalsværdierne.
Udfør følgende sætning for at se heltalværdierne for boolske bogstaver:
Mysql> Select TRUE, FALSE, true, false, True, False;
Efter vellykket udførelse vises følgende resultat:
MySQL boolesk eksempel
Vi kan gemme en boolsk værdi i MySQL-tabellen som en heltalsdatatype. Lad os oprette en tabelelev, der demonstrerer brugen af boolsk datatype i MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
I ovenstående forespørgsel kan vi se, at pass-feltet er defineret som en boolesk, når man viser definitionen af en tabel; den indeholder TINIINT som følger:
tegn til streng i java
mysql> DESCRIBE student;
Lad os tilføje to nye rækker i ovenstående tabel ved hjælp af følgende forespørgsel:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Når ovenstående forespørgsel er udført, søger MySQL straks efter den boolske datatype i tabellen. Hvis de boolske bogstaver findes, vil de blive konverteret til heltalsværdierne 0 og 1. Udfør følgende forespørgsel for at hente data fra elevtabellen:
Mysql> SELECT studentid, name, pass FROM student;
Du vil få følgende output, hvor den sande og den falske bogstav bliver konverteret til 0 og 1 værdi.
Da MySQL altid bruger TINYINT som boolsk, kan vi også indsætte eventuelle heltalsværdier i den boolske kolonne. Udfør følgende erklæring:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Du får følgende resultat:
I nogle tilfælde skal du få resultatet i sande og falske bogstaver. I så fald skal du udføre funktionen if() med select-sætningen som følger:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Det vil give følgende output:
MySQL booleske operatører
MySQL giver os også mulighed for at bruge operatorer med den boolske datatype. Udfør følgende forespørgsel for at få alle beståede resultater for tabelelev.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Denne erklæring returnerer følgende output:
Ovenstående erklæring returnerer kun beståelsesresultatet, hvis værdien er lig med 1. Vi kan rette det ved at bruge ER operatør. Denne operator validerer værdien med den boolske værdi. Følgende erklæring forklarer dette:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Efter at have udført denne erklæring, vil du få følgende resultat:
Hvis du vil se det afventende resultat, skal du bruge ER FALSK eller DET ER IKKE SANDT operatør som nedenfor:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Du får følgende output: