Boolean е най-простият тип данни, който винаги връща две възможни стойности, true или false. Винаги може да се използва за получаване на потвърждение под формата на стойност YES или No.
MySQL не съдържа вграден тип данни Boolean или Bool. Те осигуряват a TINYINT тип данни вместо Boolean или Bool типове данни. MySQL счита нулевата стойност за невярна и ненулевата стойност за вярна. Ако искате да използвате булеви литерали, използвайте true или false, които винаги се оценяват на стойност 0 и 1. 0 и 1 представляват цели числа.
Изпълнете следния оператор, за да видите целите стойности на булевите литерали:
Mysql> Select TRUE, FALSE, true, false, True, False;
След успешно изпълнение се появява следният резултат:
Булев пример за MySQL
Можем да съхраним булева стойност в MySQL таблицата като целочислен тип данни. Нека създадем таблица ученик, която демонстрира използването на булев тип данни в MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
В горната заявка можем да видим, че полето за пропуск е дефинирано като булево, когато показва дефиницията на таблица; съдържа TINIINT, както следва:
sed команда
mysql> DESCRIBE student;
Нека добавим два нови реда в горната таблица с помощта на следната заявка:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Когато горната заявка се изпълни, незабавно MySQL проверява за булевия тип данни в таблицата. Ако булевите литерали бъдат намерени, те ще бъдат преобразувани в цели числа 0 и 1. Изпълнете следната заявка, за да получите данните от таблицата на учениците:
Mysql> SELECT studentid, name, pass FROM student;
Ще получите следния изход, където верният и неверен литерал се преобразуват в стойности 0 и 1.
Тъй като MySQL винаги използва TINYINT като Boolean, можем също да вмъкнем всякакви цели числа в Boolean колоната. Изпълнете следния оператор:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Ще получите следния резултат:
В някои случаи трябва да получите резултата в истински и неверни литерали. В този случай трябва да изпълните функцията if() с оператора select, както следва:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Той ще даде следния резултат:
MySQL булеви оператори
MySQL също ни позволява да използваме оператори с булев тип данни. Изпълнете следната заявка, за да получите всички резултати за преминаване на маса student.
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
Този израз връща следния резултат:
Горният израз връща резултата за преминаване само ако стойността е равна на 1. Можем да го поправим, като използваме Е оператор. Този оператор потвърждава стойността с булевата стойност. Следното твърдение обяснява това:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
След като изпълните този оператор, ще получите следния резултат:
Ако искате да видите чакащия резултат, използвайте Е НЕВЯРНО или НЕ Е ВЯРНО оператор както по-долу:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
Ще получите следния изход: