Что вы должны знать о значениях NULL

Понимать использование пустых значений, чтобы избежать проблем с базой данных

Пользователи, плохо знакомые с миром баз данных, часто путаются с особым значением, относящимся к полю – значением NULL. Это значение можно найти в поле, содержащем данные любого типа, и имеет особое значение в контексте реляционной базы данных. Вероятно, лучше начать обсуждение NULL с нескольких слов о том, что такое NULL не :

  • NULL – это не число ноль.
  • NULL не является значением пустой строки («»).

Скорее, NULL – это значение, используемое для представления неизвестного фрагмента данных. Часто программисты баз данных используют фразу «значение NULL», но это неверно. Помните: NULL – это неизвестное значение, в котором поле выглядит пустым.

NULL в реальном мире

Давайте рассмотрим простой пример: стол с инвентарём для фруктовой лавки. Предположим, что наш инвентарь содержит 10 яблок и три апельсина. Мы также храним сливы, но информация о наших запасах неполная, и мы не знаем, сколько (если таковые имеются) слив есть в наличии. Используя значение NULL, мы получим таблицу инвентаризации, показанную в таблице ниже.

Инвентарь фруктовых лавок






InventoryID Item Количество
1 Яблоки 10
2 Апельсины 3
3 Сливы NULL


Было бы неправильно указывать количество 0 для записи слив, потому что это означало бы, что в инвентаре нет слив. Напротив, у нас может быть немного слив, но мы просто не уверены.

NULL или НЕ NULL?

Таблица может быть спроектирована для разрешения значений NULL или нет. Вот пример SQL, который создает таблицу инвентаризации, которая допускает некоторые значения NULL:

 SQL> CREATE TABLE INVENTORY (
InventoryID INT NOT NULL,
Элемент VARCHAR (20) NOT NULL,
Количество INT
);

Таблица инвентаризации здесь не допускает значения NULL для столбцов InventoryID и Item , но разрешает их для столбца Количество .

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

Чтобы проверить, содержит ли ваша таблица значения NULL, используйте оператор IS NULL или IS NOT NULL. Вот пример IS NULL:

 SQL> ВЫБРАТЬ INVENTORYID, ПУНКТ, КОЛИЧЕСТВО 
ИЗ ИНВЕНТАРЯ
ГДЕ КОЛИЧЕСТВО НЕ НУЛЬ;;

Учитывая наш пример здесь, это вернет:

InventoryID
Вещь
Количество


3 Сливы

Работает на NULL

Работа со значениями NULL часто приводит к результатам NULL, в зависимости от операции SQL. Например, предполагая, что A НЕДЕЙСТВИТЕЛЕН:

Арифметические операторы

  • A + B = NULL
  • A – B = NULL
  • A * B = NULL
  • A/B = NULL

Операторы сравнения

  • A = B = NULL
  • A! = B = NULL
  • A> B = NULL
  • A!

Это всего лишь несколько примеров операторов, которые всегда возвращают NULL, если один из операндов равен NULL. Существуют гораздо более сложные запросы, и все они усложняются значениями NULL. Главная идея заключается в том, что, если вы разрешите значения NULL в своей базе данных, поймите последствия и спланируйте их.

Это NULL в двух словах!

Оцените статью
Solutics.ru
Добавить комментарий