Un boolean este cel mai simplu tip de date care returnează întotdeauna două valori posibile, fie adevărate, fie false. Se poate folosi întotdeauna pentru a obține o confirmare sub forma valorii DA sau Nu.
MySQL nu conține tipul de date Boolean sau Bool încorporat. Acestea oferă a TINYINT tipul de date în loc de tipurile de date Boolean sau Bool. MySQL considerată valoarea zero ca fiind falsă și valoarea diferită de zero ca adevărată. Dacă doriți să utilizați literale booleene, utilizați true sau false care evaluează întotdeauna la 0 și 1. 0 și 1 reprezintă valorile întregi.
Executați următoarea instrucțiune pentru a vedea valorile întregi ale literalelor booleene:
Mysql> Select TRUE, FALSE, true, false, True, False;
După executarea cu succes, apare următorul rezultat:
Exemplu boolean MySQL
Putem stoca o valoare booleană în tabelul MySQL ca tip de date întreg. Să creăm un student de tabel care demonstrează utilizarea tipului de date boolean în MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
În interogarea de mai sus, putem vedea că câmpul de trecere este definit ca un boolean atunci când afișează definiția unui tabel; conține TINIINT după cum urmează:
set c++
mysql> DESCRIBE student;
Să adăugăm două rânduri noi în tabelul de mai sus cu ajutorul următoarei interogări:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Când interogarea de mai sus este executată, MySQL verifică imediat tipul de date boolean din tabel. Dacă se găsesc literalele booleene, acestea vor fi convertite în valori întregi 0 și 1. Executați următoarea interogare pentru a obține datele din tabelul student:
Mysql> SELECT studentid, name, pass FROM student;
Veți obține următoarea ieșire în care literalul adevărat și fals este convertit în valoarea 0 și 1.
Deoarece MySQL folosește întotdeauna TINYINT ca boolean, putem, de asemenea, să inserăm orice valori întregi în coloana booleană. Executați următoarea instrucțiune:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Veți obține următorul rezultat:
În unele cazuri, trebuie să obțineți rezultatul în literale adevărate și false. În acest caz, trebuie să executați funcția if() cu instrucțiunea select, după cum urmează:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Va da urmatoarea iesire:
Operatori booleeni MySQL
MySQL ne permite, de asemenea, să folosim operatori cu tipul de date boolean. Executați următoarea interogare pentru a obține toate rezultatele de trecere a tabelului student.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Această instrucțiune returnează următoarea ieșire:
Declarația de mai sus returnează rezultatul trecerii numai dacă valoarea este egală cu 1. O putem remedia utilizând ESTE operator. Acest operator validează valoarea cu valoarea booleană. Următoarea afirmație explică acest lucru:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
După executarea acestei instrucțiuni, veți obține următorul rezultat:
Dacă doriți să vedeți rezultatul în așteptare, utilizați E FALS sau NU ESTE ADEVĂRAT operator după cum urmează:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Veți obține următoarea ieșire: