Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
IT и технологии · 1 июня 2026 г.
💣 NULL — тихий саботаж в твоей БД
💣 NULL — тихий саботаж в твоей БД На первый взгляд, NULL — просто отсутствие значения. Но на практике это частый источник багов, неверных аналитик и проблем в бизнес-логике. 📉 Антипаттерн: беспечное обращение с NULL Примеры: SELECT * FROM users WHERE age > 18; -- Пользователи с age = NULL не попадут Ты думаешь, что отбираешь всех взрослых, но age = NULL тут "выпадает", ведь NULL > 18 → UNKNOWN. WHERE col1 = col2 -- Не сработает, если хотя бы одно значение NULL 🙈 Проблема: NULL не равно даже самому себе (NULL != NULL). 📉 Итоги: ошибки в JOIN'ах, WHERE-фильтрах, расчетах. 🛡 Как защититься: ✅ Явно учитывай NULL: WHERE age > 18 OR age IS NULL -- если хочешь включить "неизвестный возраст" ✅ Используй COALESCE: SELECT COALESCE(discount, 0) FROM orders -- подставим 0, если скидка не указана ✅ Проверяй NULL через IS NULL / IS NOT NULL ✅ Для агрегаций учитывай поведение NULL: AVG(column) -- пропустит NULL'ы, но COUNT(column) тоже не посчитает их! Вывод: NULL — не "ничего", а "неизвестно". Пиши запросы так, как будто NULL всегда где-то прячется — и он не на твоей стороне. Сохрани, чтобы не ловить грабли 💥 #db 👉 @database_info