Кажется, что ответы здесь все приходят с точки зрения CS, поэтому я хочу добавить один с точки зрения разработчика.
Для разработчика NULL очень полезен. Ответы здесь говорят, что NULL означает неизвестный, и, возможно, в теории CS это правда, не помню, это было давно. В реальной разработке, хотя, по моему опыту, это происходит примерно в 1% случаев. Остальные 99% используются в тех случаях, когда значение не UNKNOWN, но оно известно, что оно отсутствует.
Например:
Client.LastPurchase
, для нового клиента. Это не неизвестно, известно, что он еще не совершил покупку.
При использовании ORM с таблицей для Класс Иерархия отображение, некоторые значения просто не отображаются для определенных классов.
При отображении древовидной структуры корень обычно будет иметь Parent = NULL
и многое другое ...
Я уверен, что большинство разработчиков в какой-то момент написали WHERE value = NULL
,
не получили никаких результатов, и вот как они узнали о синтаксисе IS NULL
. Посмотрите, сколько голосов имеют этот вопрос и связанные с ним.
Базы данных SQL - это инструмент, и они должны быть спроектированы так, чтобы их пользователям было проще понять.