Практический курс по SQL для начинающих - #2 Базовые SELECT запросы
«SQL и NULL: почему они настолько странные?»
Иногда кажется, что SQL — это набор классических правил с жёсткой логикой, но вот приходит тема NULL, и оказывается, что ничего жёстко не работает. В этой статье мы разберёмся, почему SQL расценивает NULL весьма необычным образом (и ломает нам «обычную» логику уникальности). Будем опираться на опыт и примеры из поста “SQL nulls are weird”, где автор подробно рассказывает, как базы SQLite, Postgres и MySQL ведут себя, когда дело доходит до NULL. Если мы создаём таблицу вида: CREATE TABLE sample (
...
🔹 NULL: не баг, а состояние
🔹 Как работать с NULL в SQL (Structured Query Language)? 🔸 NULL обозначает отсутствие или неизвестность значения. Без него вы не отличите "пустую строку" от "нет данных", и это ломает подсчёты, джойны и логические проверки. 🔸 Для проверки используйте IS NULL / IS NOT NULL. Сравнение с = NULL не работает — возвращает NULL, а не true/false, и даёт неверные результаты. 🔸 COALESCE возвращает первый ненулевой аргумент и подставляет дефолт вместо сложных CASE-ов — удобно при выдаче значений по умолчанию...