NULL
NULL — это отсутствие известного значения
NULL в SQL не означает число 0, пустую строку или слово «null». Он показывает, что в этом месте нет известного значения. Например, номер телефона пользователя может быть ещё не указан.
INSERT INTO users (id, name, email)
VALUES (1, 'Anna', NULL);
В такой строке значение email неизвестно или отсутствует. Это принципиально отличается от '': пустая строка является конкретным строковым значением.
NULL нельзя воспринимать как обычное значение
Обычные сравнения предполагают, что оба значения известны. С NULL это предположение не выполняется, поэтому выражения с ним работают иначе, чем сравнения чисел или строк. Для проверки отсутствия значения SQL использует специальные конструкции.
SELECT id, name
FROM users
WHERE email IS NULL;
IS NULL проверяет именно отсутствие значения. Подробно фильтрацию строк и связанные условия мы разберём в следующем разделе.
Не подменяй NULL пустым значением только ради удобства.
Если «значение неизвестно» и «значение известно и пустое» имеют разный смысл для предметной области, база должна уметь различать эти состояния.
Проверь себя
Разбор задания
Ментор знает решение и поможет тебе прийти к нему самостоятельно
Войди, чтобы использовать Ментора
Ментор учитывает текущую задачу и историю диалога.
Войти
Проверь важные нюансы и ответ после собственной попытки.
Войди, чтобы посмотреть решение
Решение и разбор доступны после авторизации.
Войти