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, сразу понятно, что это поле хранит логическую сущность (да/нет). Это улучшает читаемость схемы базы данных и делает вашу модель данных более понятной для других разработчиков.

2
Задача
SQL SELF, 15 уровень, 3 лекция
Недоступна
Текстовая интерпретация логического значения
Текстовая интерпретация логического значения
2
Задача
SQL SELF, 15 уровень, 3 лекция
Недоступна
Фильтрация по булевому значению
Фильтрация по булевому значению
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Глеб Уровень 29
5 января 2026
Обожаю, еще раз напомнили как проверять NULL. После миллиардного ввода сервер пентагона принял пароль Мао Цзэдун