Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Что такое NULL в SQL?

Вопрос проверяет понимание значения NULL в SQL, которое используется для обозначения отсутствия данных в столбце таблицы.

Короткий ответ

NULL в SQL — это специальный маркер, который указывает на отсутствие значения в ячейке таблицы. Он не равен нулю, пустой строке или любому другому конкретному значению. NULL означает, что данные неизвестны, неприменимы или просто не были введены. При сравнениях с NULL используется трехзначная логика: результат операций часто оказывается UNKNOWN, а не TRUE или FALSE.

Длинный ответ

NULL в SQL — это не значение, а специальное состояние, показывающее, что информация в поле отсутствует. Это принципиально отличается от нуля, пустой строки или false. NULL означает "значение неизвестно" или "не применимо". Например, в таблице сотрудников поле "дата увольнения" для действующего сотрудника может быть NULL.

Особенности работы с NULL

Основная сложность заключается в логике сравнений. Обычные операторы (=, <, >) с NULL возвращают не TRUE или FALSE, а UNKNOWN. Поэтому для проверки на NULL используется специальный оператор IS NULL или IS NOT NULL.

-- Неправильно: не найдет строки с NULL
SELECT * FROM employees WHERE termination_date = NULL;

-- Правильно:
SELECT * FROM employees WHERE termination_date IS NULL;

NULL в агрегатных функциях и выражениях

Большинство агрегатных функций, таких как SUM() или AVG(), игнорируют NULL. Однако любая арифметическая операция с NULL также возвращает NULL. Это поведение нужно учитывать при вычислениях.

-- Если salary содержит NULL, результат всего выражения станет NULL
SELECT name, salary + bonus AS total_income FROM employees;

-- Чтобы избежать этого, можно использовать COALESCE
SELECT name, COALESCE(salary, 0) + COALESCE(bonus, 0) AS total_income FROM employees;

Практическое применение и проблемы

NULL полезен, когда данные могут быть неизвестны на момент вставки. Однако его чрезмерное использование усложняет запросы и может привести к ошибкам. При проектировании схемы иногда лучше использовать значения по умолчанию (например, 0 или пустую строку), если это имеет смысл для бизнес-логики.

Вывод: NULL — это мощный инструмент для представления отсутствующих данных, но он требует аккуратного обращения. Используйте его, когда действительно нужно отличить "неизвестное" от любого конкретного значения (вроде 0), и всегда проверяйте условия с помощью IS NULL.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • SQL

Ключевые слова

#SQL

#NULL

#database

#missing data

#three-valued logic

Подпишись на Java Developer в телеграм