Перейти к содержанию

Начало урока

Что такое NULL

Особое значение "мы не знаем", которое живёт в базах данных

Главная идея: NULL - это не ноль и не пустой текст. Он означает "здесь нет значения" - информация отсутствует или неизвестна. Из-за этого NULL ведёт себя порой неожиданно, и в этой теме мы научимся работать с ним безопасно.
К концу урока вы сможете:
  • объяснить, что на самом деле означает NULL (и что он не означает),
  • находить отсутствующие значения с помощью IS NULL и IS NOT NULL,
  • понять, почему = NULL никогда не работает,
  • предсказывать, что произойдёт, когда NULL встречается со сравнениями и арифметикой,
  • заменять отсутствующие значения удобным значением по умолчанию с помощью COALESCE.

1. Наша таблица-пример

На протяжении всего урока мы используем одну маленькую школьную таблицу students. Некоторые ячейки специально оставлены пустыми - в этих пустых ячейках хранится NULL.

CREATE TABLE students (
    id     INT PRIMARY KEY,
    name   VARCHAR(30),
    age    INT,
    club   VARCHAR(20),
    email  VARCHAR(40)
);

INSERT INTO students (id, name, age, club, email) VALUES
(1, 'Ava',   12,   'Chess', 'ava@school.edu'),
(2, 'Ben',   13,   NULL,    'ben@school.edu'),
(3, 'Cara',  NULL, 'Art',   NULL),
(4, 'Dylan', 12,   NULL,    NULL),
(5, 'Elly',  14,   'Chess', 'elly@school.edu');

Вот вся таблица. Серые значки NULL показывают, где значение отсутствует:

idnameageclubemail
1Ava12Chessava@school.edu
2Ben13NULLben@school.edu
3CaraNULLArtNULL
4Dylan12NULLNULL
5Elly14Chesselly@school.edu

Бен и Дилан не вступили ни в один club (кружок). Кара не сообщила свой age (возраст). У Кары и Дилана нет email в записях. Все эти пропуски - это NULL.

2. Что означает NULL?

Представьте бумажную анкету. В одном вопросе спрашивают: "В какой кружок ты записался?" - и ученик оставляет его пустым. Вы не знаете ответа: может, он записался и забыл написать, а может, не записался никуда. Клетка просто пуста. В базе данных эта пустая клетка и есть NULL.

NULL означает "отсутствует" или "неизвестно". Это способ базы данных сказать: "у меня здесь нет значения".

Аналогия: Ценник, который отвалился от рубашки, не означает, что рубашка бесплатная (0). Это значит, что вы пока не знаете цену. NULL - это отсутствующий ценник, а не цена ноль.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя