Логічний тип — це найпростіший тип даних, який завжди повертає два можливі значення: істинне або хибне. Його завжди можна використовувати для отримання підтвердження у вигляді значення 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 як цілочисельний тип даних. Давайте створимо таблицю student, яка демонструє використання типу даних Boolean у MySQL:
mysql> CREATE TABLE student ( studentid INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(40) NOT NULL, age VARCHAR(3), pass BOOLEAN );
У наведеному вище запиті ми бачимо, що поле пропуску визначено як логічне під час показу визначення таблиці; він містить TINIINT наступним чином:
друкувати масив у java
mysql> DESCRIBE student;
Давайте додамо два нових рядки в таблицю вище за допомогою наступного запиту:
mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
Коли наведений вище запит виконується, MySQL негайно перевіряє тип даних Boolean у таблиці. Якщо булеві літерали знайдено, їх буде перетворено на цілі значення 0 і 1. Виконайте наступний запит, щоб отримати дані з таблиці учнів:
Mysql> SELECT studentid, name, pass FROM student;
Ви отримаєте наступний результат, де літерали true і false перетворюються на значення 0 і 1.
Оскільки MySQL завжди використовує TINYINT як логічний, ми також можемо вставляти будь-які цілі значення в логічний стовпець. Виконайте наступний оператор:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
Ви отримаєте такий результат:
У деяких випадках вам потрібно отримати результат у істинних і хибних літералах. У цьому випадку вам потрібно виконати функцію if() з інструкцією select наступним чином:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
Це дасть наступний результат:
Логічні оператори MySQL
MySQL також дозволяє нам використовувати оператори з типом даних Boolean. Виконайте наступний запит, щоб отримати всі результати проходження таблиці 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;
Ви отримаєте наступний результат: