Проверка на значение NULL
Значения NULL обеспечивают возможность применения трехзначной логики в условиях отбора. Иногда бывает необходимо явно проверять значения столбцов на равенство NULL и непосредственно обрабатывать их.
Если требуется выдать все записи, в которых некоторый столбец имеет значение NULL (т. е. не имеет никакого значения), достаточно в условии поиска указать предложение
<значение> IS [NOT] NULL
Неопределенное значение интерпретируется в реляционной модели как значение, неизвестное на данный момент времени. Это значение при появлении дополнительной информации может быть заменено некоторым конкретным значением. Введение NULL – значений вызвало необходимость модификации классической двухзначной логики и превращения её в трехзначную. Все логические операции, производимые с неопределенными значениями, подчиняются этой логике в соответствии с заданной таблицей истинности.
A B NotA A(B A(B)
TRUE TRUE FALSE TRUE TRUE
TRUE FALSE FALSE FALSE TRUE
TRUE NULL FALSE NULL TRUE
FALSE TRUE TRUE FALSE TRUE
FALSE FALSE TRUE FALSE FALSE
FALSE NULL TRUE FALSE NULL
NULL TRUE NULL NULL TRUE
NULL FALSE NULL FALSE NULL
NULL NULL NULL NULL NULL
Наличие неопределенных значений повышает гибкость обработки информации, хранящейся в баз данных.
Пример: найти служащих, которые еще не закреплены за офисом
SELECT FAMILY, NAME
FROM SLUZHASCHIE
WHERE ID_OFC IS NULL
Результат:
FAMILY | NAME |
Скворцов | Петр |
Семшов | Иван |
Аршавин | Федор |
Может показаться странным, но нельзя проверить значение на равенство NULL с помощью операции сравнения, например,
SELECT FAMILY, NAME
FROM SLUZHASCHIE
WHERE ID_OFC = NULL
Ключевое слово NULL здесь нельзя использовать, поскольку NULL это не значение, а просто сигнал о том, что значение неизвестно.
Дата добавления: 2015-02-03; просмотров: 1043;