Язык запросов SQL



             

Внимание



Внимание

Выражение Carbohydrate IS NULL— это не то же самое, что CARBOHYDRATE = NULL. Для иллюстрации этого утверждения предположим, что в текущей строке таблицы FOODS значения в столбцах Carbohydrate и Protein (белки) являются неопределенными. Из этого можно сделать несколько выводов.
  • Carbohydrate IS NULL истинно.
  • Protein IS NULL истинно.
  • Carbohydrate IS NULL AND Protein IS NULL истинно.
  • Истинность Carbohydrate = Protein не может быть определена.
  • Carbohydrate = NULL является недопустимым выражением.

Использовать ключевое слов NULL в сравнениях бессмысленно, так как всегда возвращается ответ NULL.

Почему же истинность выражения Carbohydrate = Protein определяется как неизвестная, даже если Carbohydrate и Protein имеют одно и то же неопределенное значение? Да потому, что NULL просто означает "я не знаю". Вы же не знаете, каким должно быть значение в Carbohydrate, и не знаете, каким — в Protein. Следовательно, вам не известно, являются ли эти неизвестные значения одинаковыми. Возможно, в Carbohydrate следует ввести 37, а в Protein — 14, а может, у каждого из них должно быть значение 93. Если вам неизвестно количество углеводов и белков, то нельзя сказать, являются ли эти величины одинаковыми.









Содержание  Назад  Вперед