Boolean je nejjednodušší datový typ, který vždy vrací dvě možné hodnoty, buď true nebo false. Vždy lze použít k získání potvrzení ve formě hodnoty ANO nebo Ne.
MySQL neobsahuje vestavěný datový typ Boolean nebo Bool. Poskytují a TINYINT datový typ namísto datových typů Boolean nebo Bool. MySQL nulovou hodnotu považoval za nepravdivou a nenulovou hodnotu za pravdivou. Pokud chcete použít booleovské literály, použijte true nebo false, které se vždy vyhodnotí jako 0 a 1. 0 a 1 představují celočíselné hodnoty.
Chcete-li zobrazit celočíselné hodnoty booleovských literálů, proveďte následující příkaz:
Mysql> Select TRUE, FALSE, true, false, True, False;
Po úspěšném provedení se zobrazí následující výsledek:
Booleovský příklad MySQL
Booleovskou hodnotu můžeme uložit do tabulky MySQL jako celočíselný datový typ. Vytvořme studenta tabulky, který demonstruje použití datového typu Boolean v MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
Ve výše uvedeném dotazu vidíme, že pole pass je definováno jako booleovské, když se zobrazuje definice tabulky; obsahuje TINIINT takto:
javafx
mysql> DESCRIBE student;
Přidejte dva nové řádky do výše uvedené tabulky pomocí následujícího dotazu:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Po provedení výše uvedeného dotazu MySQL okamžitě zkontroluje typ dat Boolean v tabulce. Pokud byly nalezeny booleovské literály, budou převedeny na celočíselné hodnoty 0 a 1. Provedením následujícího dotazu získáte data ze studentské tabulky:
Mysql> SELECT studentid, name, pass FROM student;
Získáte následující výstup, kde se pravdivý a nepravdivý literál převede na hodnotu 0 a 1.
Protože MySQL vždy používá TINYINT jako booleovský, můžeme do booleovského sloupce vložit také libovolné celočíselné hodnoty. Proveďte následující příkaz:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Získáte následující výsledek:
V některých případech potřebujete získat výsledek v pravdivých a nepravdivých literálech. V takovém případě musíte provést funkci if() pomocí příkazu select následovně:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Poskytne následující výstup:
Booleovské operátory MySQL
MySQL nám také umožňuje používat operátory s datovým typem Boolean. Provedením následujícího dotazu získáte všechny výsledky úspěšnosti tabulky student.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Tento příkaz vrátí následující výstup:
Výše uvedený příkaz vrátí výsledek průchodu pouze v případě, že je hodnota rovna 1. Můžeme to opravit pomocí JE operátor. Tento operátor ověřuje hodnotu pomocí booleovské hodnoty. Vysvětluje to následující prohlášení:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
Po provedení tohoto příkazu získáte následující výsledek:
Pokud chcete vidět čekající výsledek, použijte JE NEPRAVDA nebo NENÍ PRAVDA operátor, jak je uvedeno níže:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Získáte následující výstup: