Booleov je najjednostavniji tip podataka koji uvijek vraća dvije moguće vrijednosti, bilo true ili false. Uvijek se može koristiti za dobivanje potvrde u obliku vrijednosti YES ili No.
MySQL ne sadrži ugrađeni Boolean ili Bool tip podataka. Oni pružaju a TINYINT tip podataka umjesto Boolean ili Bool tipova podataka. MySQL vrijednost nula smatra lažnom, a vrijednost različitu od nule istinitom. Ako želite koristiti Booleove literale, upotrijebite true ili false koji uvijek daju vrijednost 0 i 1. 0 i 1 predstavljaju cjelobrojne vrijednosti.
Izvršite sljedeću naredbu da vidite cjelobrojne vrijednosti Booleovih literala:
Mysql> Select TRUE, FALSE, true, false, True, False;
Nakon uspješnog izvođenja pojavljuje se sljedeći rezultat:
MySQL Booleov primjer
Booleovu vrijednost možemo pohraniti u MySQL tablicu kao cjelobrojni tip podataka. Kreirajmo tablicu učenika koja demonstrira korištenje tipa podataka Boolean u MySQL-u:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
U gornjem upitu možemo vidjeti da je polje prolaza definirano kao Booleov kada se prikazuje definicija tablice; sadrži TINIINT kako slijedi:
ime od
mysql> DESCRIBE student;
Dodajmo dva nova reda u gornju tablicu uz pomoć sljedećeg upita:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Kada se gornji upit izvrši, MySQL odmah provjerava Booleov tip podataka u tablici. Ako su Booleovi literali pronađeni, bit će pretvoreni u cjelobrojne vrijednosti 0 i 1. Izvršite sljedeći upit da biste dobili podatke iz tablice učenika:
Mysql> SELECT studentid, name, pass FROM student;
Dobit ćete sljedeći izlaz gdje se pravi i lažni literal pretvaraju u vrijednosti 0 i 1.
Budući da MySQL uvijek koristi TINYINT kao Boolean, također možemo umetnuti bilo koju cjelobrojnu vrijednost u Booleov stupac. Izvršite sljedeću izjavu:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Dobit ćete sljedeći rezultat:
U nekim slučajevima morate dobiti rezultat u istinitim i lažnim literalima. U tom slučaju trebate izvršiti funkciju if() s naredbom select na sljedeći način:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
To će dati sljedeći izlaz:
MySQL Booleovi operatori
MySQL nam također omogućuje korištenje operatora s Boolean tipom podataka. Izvršite sljedeći upit da dobijete sve prolazne rezultate učenika tablice.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Ova izjava vraća sljedeći izlaz:
Gornja izjava vraća rezultat prolaza samo ako je vrijednost jednaka 1. To možemo popraviti korištenjem JE operater. Ovaj operator potvrđuje vrijednost Booleovom vrijednošću. Sljedeća izjava objašnjava ovo:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Nakon izvršenja ove naredbe, dobit ćete sljedeći rezultat:
Ako želite vidjeti rezultat na čekanju, koristite JE LAŽNO ili NIJE ISTINA operater kao ispod:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Dobit ćete sljedeći izlaz: