logo

MySQL Boolean

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 Boolean

Булев пример за 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 Boolean

Нека добавим два нови реда в горната таблица с помощта на следната заявка:

 mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false); 

Когато горната заявка се изпълни, незабавно MySQL проверява за булевия тип данни в таблицата. Ако булевите литерали бъдат намерени, те ще бъдат преобразувани в цели числа 0 и 1. Изпълнете следната заявка, за да получите данните от таблицата на учениците:

 Mysql> SELECT studentid, name, pass FROM student; 

Ще получите следния изход, където верният и неверен литерал се преобразуват в стойности 0 и 1.

MySQL Boolean

Тъй като MySQL винаги използва TINYINT като Boolean, можем също да вмъкнем всякакви цели числа в Boolean колоната. Изпълнете следния оператор:

 Mysql> INSERT INTO student(name, pass) VALUES('Miller',2); 

Ще получите следния резултат:

MySQL Boolean

В някои случаи трябва да получите резултата в истински и неверни литерали. В този случай трябва да изпълните функцията if() с оператора select, както следва:

 Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1; 

Той ще даде следния резултат:

MySQL Boolean

MySQL булеви оператори

MySQL също ни позволява да използваме оператори с булев тип данни. Изпълнете следната заявка, за да получите всички резултати за преминаване на маса student.

 SELECT studentid, name, pass FROM student1 WHERE pass = TRUE; 

Този израз връща следния резултат:

MySQL Boolean

Горният израз връща резултата за преминаване само ако стойността е равна на 1. Можем да го поправим, като използваме Е оператор. Този оператор потвърждава стойността с булевата стойност. Следното твърдение обяснява това:

 SELECT studentid, name, pass FROM student1 WHERE pass is TRUE; 

След като изпълните този оператор, ще получите следния резултат:

MySQL Boolean

Ако искате да видите чакащия резултат, използвайте Е НЕВЯРНО или НЕ Е ВЯРНО оператор както по-долу:

 SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE; OR, SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE; 

Ще получите следния изход:

MySQL Boolean