Еще о NULL-значениях стр. 2 |
||||||||||||||||||||||||||||||||||||
Для примера рассмотрим информацию о моделях 1298, имеющихся в таблице Laptop. Чтобы познакомиться с данными, выполним запрос: Вот результаты выполнения этого запроса:
Рассмотрим задачу получения средней цены модели 1298. Пока все цены известны решение этой задачи не вызывает никаких сомнений:
Пусть теперь цена модели с кодом 4 неизвестна. Если, как было решено ранее, мы будем заменять неизвестное значение, скажем, нулем (UPDATE Laptop SET price = 0 WHERE code=4), то получим заведомо неверное среднее значение цены — 550.0 Если же мы будем использовать NULL-значение, то результат будет вполне правильным — 825.0, так как NULL-значения будут игнорироваться при группировке, в результате чего среднее значение будет вычисляться только по моделям с известной ценой (то есть среднее по двум моделям). Итак, как мы постарались показать, NULL-значение является неотъемлемой особенностью реляционной модели, поэтому рекомендуем научиться корректно работать с такими значениями.
Примечание:
Ради объективности отсылаем вас к аргументированной критике Дейта относительно использования NULL-значений [1]. Коддом было предложено [6] два разных типа NULL-значений, соответствующих как раз тем двум аспектам их применения, о которых шла речь выше. |