Boolean je najjednoduchší dátový typ, ktorý vždy vracia dve možné hodnoty, buď true alebo false. Vždy sa môže použiť na získanie potvrdenia vo forme hodnoty ÁNO alebo Nie.
MySQL neobsahuje vstavaný typ údajov Boolean alebo Bool. Poskytujú a TINYINT dátový typ namiesto Boolean alebo Bool dátových typov. MySQL nulovú hodnotu považoval za nepravdivú a nenulovú hodnotu za pravdivú. Ak chcete použiť booleovské literály, použite true alebo false, ktoré sa vždy vyhodnotia ako 0 a 1. 0 a 1 predstavujú celočíselné hodnoty.
Vykonajte nasledujúci príkaz, aby ste videli celočíselné hodnoty booleovských literálov:
Mysql> Select TRUE, FALSE, true, false, True, False;
Po úspešnom vykonaní sa zobrazí nasledujúci výsledok:
Booleovský príklad MySQL
Booleovskú hodnotu môžeme uložiť do tabuľky MySQL ako celočíselný dátový typ. Vytvorme študenta tabuľky, ktorý demonštruje použitie typu Boolean údajov v MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
Vo vyššie uvedenom dotaze vidíme, že pri zobrazení definície tabuľky je pole pass definované ako booleovské; obsahuje TINIINT takto:
modely strojového učenia
mysql> DESCRIBE student;
Pridajme dva nové riadky do vyššie uvedenej tabuľky pomocou nasledujúceho dotazu:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Po vykonaní vyššie uvedeného dotazu MySQL okamžite skontroluje typ údajov Boolean v tabuľke. Ak sa boolovské literály nájdu, skonvertujú sa na celočíselné hodnoty 0 a 1. Vykonajte nasledujúci dotaz na získanie údajov zo študentskej tabuľky:
Mysql> SELECT studentid, name, pass FROM student;
Dostanete nasledujúci výstup, kde sa pravdivý a nepravdivý literál prevedie na hodnotu 0 a 1.
Keďže MySQL vždy používa TINYINT ako boolovskú hodnotu, do boolovského stĺpca môžeme vložiť aj ľubovoľné celočíselné hodnoty. Vykonajte nasledujúci príkaz:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Dostanete nasledujúci výsledok:
V niektorých prípadoch musíte získať výsledok v pravdivých a nepravdivých doslovoch. V takom prípade musíte vykonať funkciu if() s príkazom select takto:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Poskytne nasledujúci výstup:
Booleovské operátory MySQL
MySQL nám tiež umožňuje používať operátory s dátovým typom Boolean. Vykonajte nasledujúci dotaz, aby ste získali všetky úspešné výsledky tabuľky študenta.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Tento príkaz vráti nasledujúci výstup:
Vyššie uvedený príkaz vráti výsledok úspešnosti iba vtedy, ak sa hodnota rovná 1. Môžeme to opraviť pomocou JE operátor. Tento operátor overí hodnotu pomocou booleovskej hodnoty. Vysvetľuje to nasledujúce vyhlásenie:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Po vykonaní tohto príkazu dostanete nasledujúci výsledok:
Ak chcete vidieť čakajúci výsledok, použite JE NEPRAVDA alebo TO NIE JE PRAVDA operátor, ako je uvedené nižšie:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Získate nasledujúci výstup: