Доклад Татьяны Половинкиной на Analyst Days 22 про NULL — это честный разговор о том, как одно маленькое слово ломает логику, математику и психику. Кто не в курсе: NULL — это не 0, не пустая строка и не пробел. Это состояние неизвестности.
Что в докладе:
🔥 Трехзначная логика и
NOT UNKNOWN = UNKNOWN. Отрицание неизвестности оставляет нас в неведении.🔥 Арифметика — нулевая толерантность. Даже деление на ноль не спасает.
NULL / 0 = NULL. 🔥 Агрегаты — тихие убийцы
AVG((1, NULL, 3)) = (1+3)/2 = 2, а не (1+0+3)/3 = 1.33. Отчеты не сойдутся.🔥 NULL не равен NULL, но есть же настройки в SQL Server, чтобы все окончательно запутать.
🔥 UNIQUE и NULL — зоопарк мнений в разных СУБД
🔥 DISTINCT, GROUP BY. Даже если все считают разные NULL разными значениями. А они — нет.
🔥 NOT IN — смертельный номер, получите пустой результат и злого заказчика.
🔥 Сортировка — хаос. NULL в конце или в начале, вот в чем вопрос.
NULL — это саботажник, который живет в вашей базе 50 лет. Знание — сила. Незнание — бесплатные товары, уволенные сотрудники и бессмертные пользователи.
🎥 Смотреть видео: https://vkvideo.ru/video-137540756_456240197