2.3.5. Вовлечение неопределенного значения
(NULL-значения)
Как было рассказано в п.2.2.3,
если при загрузке данных не введено значение в какое-либо поле таблицы,
то СУБД поместит в него NULL-значение. Аналогичное значение можно
ввести в поле таблицы, выполняя операцию изменения данных. Так, при
отсутствии сведений о наличии у поставщиков судака и моркови в столбцы
Цена и К_во соответствующих строк таблицы Поставки вводится NULL и там
будет храниться код NULL-значения, а не 0, 0. или пробел. (Отметим, что
в распечатке таблицы Поставки рис.1.1
в этих местах расположен пробел, установленный в СУБД для представления
NULL-значения при выводе на печать).
В этом случае для выявления названий
продуктов, отсутствующих в кладовой, шеф-повар может дать запрос
|
Результат: |
ПР |
SELECT DISTINCT ПР FROM Наличие WHERE К_во IS NULL;
|
2
9 |
Естественно, что для выявления
продуктов, существующих в кладовой, следует дать запрос
SELECT DISTINCT ПР FROM Наличие WHERE К_во IS NOT NULL;
Использование условий
столбец IS NULL и столбец IS NOT NULL
вместо, например,
столбец = NULL и столбец <> NULL
связано с тем, что ничто - и даже само
NULL-значение
- не считается равным другому NULL-значению. (Несмотря на это, два
неопределенных значения рассматриваются, однако, как дубликаты друг
друга при исключении дубликатов, и предложение SELECT DISTINCT даст в
результате не более одного NULL-значения.)
2.3.4
| Содержание
| 2.4
|