Все о значении NULL
Очень часто новичков в мире баз данных ставит в замешательсто специфичное значение нашего поля - значение NULL. Это значение может быть найдено в полях, содержащих любой тип данных и подрозумевает довольно специальное обозначение в контексте реляционных баз данных.
Вероятнее всего лучше начать наше обсуждение NULL с нескольких слов о том, чем NULL не является:
NULL это не число ноль.
NULL это не пустая строка ("").
Скорее всего, NULL это значение используемое для изображения неизвестного типа данных. Давайте для примера рассмотрим простой пример: таблица, содержащая инвентаризацию фруктов. Допустим, что наш склад содержит 10 яблок, 3 апельсина. Мы также имеем сливы, но наша информация по ним не полная и мы не знаем как много слив (или чего другого) сейчас на складе. Используя значение NULL, мы могли бы показывать такие сведения в самом низу страницы.
Очевидно, что использование количества 0 в записи о сливах было бы некоректно, так как это бы означало, что мы вообще не имеем слив на складе. И наоборот, мы можем иметь сливы, но не уверены в этом.
Таким образом, в базах данных значение NULL это замечательный специальный метод, определяющий целый тип операций, использующих его. Когда значение NULL используется в качестве операнда операции AND, значением операции будет FALSE если другой операнд тоже FALSE (так как тут нет возможности получить значение TRUE). В другом случае, результатом будет NULL (неизвестно) если другой операнд TRUE или NULL (так как мы не можем указать, что в результате операции получается).
В случае с оператором OR при использовании значений NULL получаются аналогичные ситуации. Если второй операнд TRUE, то результатом операции OR является TRUE (так как реальное значение операнда NULL не имеет значения). В другом случае, если второй операнд FALSE или NULL, результат операции OR будет NULL.
Существуют ещё два спецальных операнда, используемых для проверки наличия значения NULL. ISNULL возвращает TRUE только когда доставляемый операнд имеет значение NULL. И наоборот, ISNOTNULL возвращает TRUE когда доставляемый операнд не имеет значения NULL. Это достаточно важные функции. Избегайте достаточно частой ошибки в базах данных: проверка на значение NULL через сравнение с пустой строкой или нулём является не корректной
Вот и всё коротко об NULL. Нужно совсем немного времени, чтобы уложить всё это правильно в мозгах. Вещь нужная...
|