En Boolean är den enklaste datatypen som alltid returnerar två möjliga värden, antingen sant eller falskt. Det kan alltid användas för att få en bekräftelse i form av JA eller Nej värde.
MySQL innehåller inte inbyggd boolesk eller boolsk datatyp. De tillhandahåller en TINYINT datatyp istället för Boolean eller Bool datatyper. MySQL betraktade värde noll som falskt och icke-noll värde som sant. Om du vill använda booleska bokstaver, använd true eller false som alltid utvärderas till 0 och 1 värde. 0 och 1 representerar heltalsvärdena.
Utför följande sats för att se heltalsvärdena för booleska bokstaver:
Mysql> Select TRUE, FALSE, true, false, True, False;
Efter framgångsrik körning visas följande resultat:
MySQL booleskt exempel
Vi kan lagra ett booleskt värde i MySQL-tabellen som en heltalsdatatyp. Låt oss skapa en tabellstudent som visar användningen av boolesk datatyp i MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
I ovanstående fråga kan vi se att passfältet är definierat som ett booleskt när man visar definitionen av en tabell; den innehåller TINIINT enligt följande:
byta namn på en katalog
mysql> DESCRIBE student;
Låt oss lägga till två nya rader i tabellen ovan med hjälp av följande fråga:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
När ovanstående fråga körs söker MySQL omedelbart efter den booleska datatypen i tabellen. Om de booleska literalerna hittas kommer de att omvandlas till heltalsvärdena 0 och 1. Kör följande fråga för att hämta data från elevtabellen:
Mysql> SELECT studentid, name, pass FROM student;
Du kommer att få följande utdata där den sanna och falska bokstaven omvandlas till 0- och 1-värden.
Eftersom MySQL alltid använder TINYINT som booleskt, kan vi också infoga alla heltalsvärden i den booleska kolumnen. Utför följande uttalande:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Du får följande resultat:
I vissa fall måste du få resultatet i sanna och falska bokstaver. I så fall måste du utföra funktionen if() med select-satsen enligt följande:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Det kommer att ge följande utdata:
MySQL booleska operatörer
MySQL tillåter oss också att använda operatorer med den booleska datatypen. Kör följande fråga för att få alla godkända resultat för tabellstudent.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Denna sats returnerar följande utdata:
Ovanstående påstående returnerar endast godkänt resultat om värdet är lika med 1. Vi kan fixa det genom att använda ÄR operatör. Denna operator validerar värdet med det booleska värdet. Följande uttalande förklarar detta:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Efter att ha kört detta uttalande får du följande resultat:
Om du vill se det väntande resultatet, använd ÄR FALSK eller ÄR INTE SANT operatör enligt nedan:
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öljande utdata: