Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Понимание истинности и ложности
Понимание истинности и ложности
Семантически, если предикат возвращает "неопределенность", это не является ни истиной, ни ложью. В SQL при этом утверждения разрешаются только в виде "истина" или "ложь" - утверждение, которое не вычисляется как "истина", рассматривается как "ложь".
Условие IF, неявно присутствующее в предикатах поиска, может вызвать у вас галлюцинацию, когда NOT используется во вложенном условии:
NOT <условие, дающее ложь> дает TRUE
в то время как
NOT <условие, дающее NULL> дает NULL
Чтобы получить пример, когда наши предположения могут оказаться ошибочными, рассмотрим следующее:
WHERE
NOT (COLUMNA = COLUMNB)
Если оба столбца COLUMNA и COLUMNB имеют значения и не равны, вычисление внутреннего предиката (того, что заключен в скобки) даст "ложь". Утверждение NOT (FALSE) вернет истину - противоположность ложного значения.
Однако если любой из столбцов является NULL, внутренний предикат даст NULL, имеющий семантическое значение "неопределенный" ("непроверенный", "неопознаваемый"). Окончательное утверждение будет NOT (NULL), а результатом станет NULL. Обратите также внимание, что NOT (NULL) не является тем же самым, что и IS NOT NULL- чисто бинарный предикат, который никогда не вернет "неопределенное значение".
! ! !
ВНИМАНИЕ! Этот урок заключается в том, что нужно быть внимательным при работе с логикой SQL и всегда жестко проверять ваши выражения. Учитывайте условия NULL, если вы можете это сделать, полностью исключайте утверждения NOT во вложенных предикатах.
. ! .
- 1.9 Сложности практической реализации
- 2.7 Сложности практической реализации
- 3.8 Сложности практической реализации
- 4.10 Сложности практической реализации
- 5.9 Сложности практической реализации
- 6.7 Сложности практической реализации
- 7.10 Сложности практической реализации
- 8.3 Сложности практической реализации
- 9.5 Сложности практической реализации
- 10.6 Сложности практической реализации
- 4.3. Логические функции и таблицы истинности
- Глава 3 Первые сложности