Skip to main content

Определение и правильное использование значений NULL

Т - 95 Аэротачка - испытания соосной схемы (Июнь 2025)

Т - 95 Аэротачка - испытания соосной схемы (Июнь 2025)
Anonim

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

  • NULL - это не ноль.
  • NULL - это не пустое значение строки ("").

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

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

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

    Инвентарь для хранения фруктов

    InventoryIDВещьКоличество
    1яблоки10
    2апельсины3
    3сливыНОЛЬ

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

    К NULL или NOT NULL?

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

    Вот пример SQL, который создает таблицу Inventory, которая допускает некоторые NULL:

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

    Таблица инвентаризации здесь не допускает значений NULL для InventoryID и Вещь столбцов, но позволяет им Количество колонка.

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

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

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

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

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

    Работа с NULL

    Работа с значениями NULL часто приводит к получению результатов NULL, в зависимости от операции SQL. Например, если предположить, что A является NULL:

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

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

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

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

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

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