JavaRush /Курси /SQL SELF /Логічний тип даних: BOOLEAN

Логічний тип даних: BOOLEAN

SQL SELF
Рівень 15 , Лекція 3
Відкрита

Ти вже познайомився з типами даних, які зберігають числа й текст. Тепер час поговорити про логічний тип даних — BOOLEAN. Це, мабуть, найчесніший тип даних, бо він відповідає лише на два питання: "Так" або "Ні". А іноді — "Мабуть" (читай: NULL).

Логічний тип даних BOOLEAN зберігає значення, які можуть бути тільки:

  • TRUE (істина);
  • FALSE (брехня);
  • NULL (відсутність значення).

Уяви собі вимикач: він може бути увімкнений TRUE, вимкнений FALSE або в стані невідомості NULL, якщо лампочка раптом зникла.

Можна сказати, що логічний тип даних — це основа прийняття рішень і умовної логіки в SQL. Без нього неможливо було б зробити нормальний фільтр у запиті чи позначити статус чогось.

Приклади використання

Логічний тип даних широко юзається в базах даних. Ось кілька реальних кейсів:

Флаги та статуси.

Наприклад, поле is_active може показувати, активний користувач (TRUE) чи ні (FALSE).

SELECT username, is_active
FROM users 
WHERE is_active = TRUE;

Контроль виконання.

Наприклад, поле is_complete може зберігати інфу, чи завершене завдання.

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Перевірка доступності.

Поле is_available може відображати, чи доступний товар на складі.

Як використовувати BOOLEAN у PostgreSQL?

Логічний тип даних у PostgreSQL називається просто BOOLEAN. давай створимо таблицю й додамо в неї кілька колонок:

  • Унікальний ідентифікатор завдання
  • Назва завдання
  • Логічний статус завершення завдання

Потім давай додамо кілька записів у таблицю:

task_id task_name - VARCHAR(255) is_complete - BOOLEAN
1 Написати звіт false
2 Сходити в магазин true
3 Прочитати книгу null

Витяг даних

Тепер подивимось, як витягати дані на основі логічного значення. Наприклад, щоб отримати лише невиконані завдання, напишемо:

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Цей запит поверне лише ті завдання, де is_complete дорівнює FALSE.

Результат:

task_name
Написати звіт

Особливості роботи з BOOLEAN

Фільтрація значень

Для роботи з логічним типом ти можеш використовувати такий синтаксис:

  • = TRUE — якщо хочеш явно вказати, що значення істинне.
  • = FALSE — якщо хочеш вибрати хибні значення.
  • IS NULL — якщо хочеш вибрати записи без значення.

Приклад:

SELECT task_name
FROM tasks 
WHERE is_complete IS NULL;

Спрощення умов

PostgreSQL настільки "розумний", що часто тобі навіть не треба явно писати = TRUE. Наприклад:

SELECT task_name
FROM tasks 
WHERE is_complete;

Цей запит еквівалентний WHERE is_complete = TRUE.

Типові помилки при роботі з BOOLEAN

Коли починаєш працювати з новим типом даних, помилок не уникнути. Ось кілька типових проблем, які можуть виникнути:

Порівняння з NULL. Новачки часто пишуть is_active = NULL. Але NULL не можна порівнювати з =. Щоб перевірити, чи значення NULL, юзай IS NULL або IS NOT NULL.

Явне вказування = TRUE. Іноді програмісти додають зайві конструкції, типу WHERE is_active = TRUE. Це не помилка, але запис можна спростити, залишивши просто WHERE is_active.

Неправильне використання рядків. Логічний тип строго типізований. Ти не можеш написати is_active = 'TRUE' або is_active = 'FALSE'. Використовуй напряму значення TRUE, FALSE або NULL.

Навіщо це потрібно?

Можливо, ти задаєшся питанням: ну навіщо так ускладнювати життя, додаючи цей BOOLEAN? Чому б просто не юзати числа, де 1 — істина, а 0 — брехня?

Відповідь проста: BOOLEAN робить твій код і дані більш виразними. Коли хтось дивиться на таблицю з полем is_active, одразу зрозуміло, що це поле зберігає логічну сутність (так/ні). Це покращує читабельність схеми бази даних і робить твою модель даних зрозумілішою для інших розробників.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ