Пользователей, новых в мире баз данных, часто путают специальные значения, относящиеся к полю - значение NULL. Это значение можно найти в поле, содержащем любой тип данных, и имеет особое значение в контексте реляционной базы данных. Вероятно, лучше всего начать обсуждение NULL несколькими словами о том, что NULL не :
- NULL - это не ноль.
- NULL - это не пустое значение строки ("").
Скорее, NULL - это значение, используемое для представления неизвестной части данных. Часто программисты базы данных будут использовать фразу «значение NULL», но это неверно. Помните: NULL - это неизвестное значение, в котором поле отображается пустым.
NULL в реальном мире
Давайте рассмотрим простой пример: таблицу, содержащую инвентарь для фруктовой подставки. Предположим, что наш инвентарь содержит 10 яблок и три апельсина. Мы также собираем сливы, но наша инвентарная информация неполна, и мы не знаем, сколько (если есть) слив на складе. Используя значение NULL, у нас будет таблица инвентаризации, приведенная в таблице ниже.
Инвентарь для хранения фруктов
InventoryID | Вещь | Количество |
1 | яблоки | 10 |
2 | апельсины | 3 |
3 | сливы | НОЛЬ |
Было бы явно неверно включать количество 0 для записи слив, поскольку это означало бы, что мы имели нет сливы в инвентаре. Напротив, у нас могут быть сливы, но мы просто не уверены. Таблица может быть сконструирована так, чтобы либо разрешать значения 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, ПУНКТ, КОЛИЧЕСТВО ИЗ ИНВЕНТАРИЗАЦИИ, КОГДА КОЛИЧЕСТВО НЕ НУЛЬНО; Учитывая наш пример, это вернет: Работа с значениями NULL часто приводит к получению результатов NULL, в зависимости от операции SQL. Например, если предположить, что A является NULL: Арифметические операторы Операторы сравнения Это лишь некоторые примеры операторов, которые будут всегда return NULL, если один операнд равен NULL. Гораздо более сложные запросы существуют, и все они сложны значениями NULL. Основная точка зрения заключается в том, что если вы разрешаете значения NULL в своей базе данных, понимаете последствия и планируете их. Это NULL в двух словах!К NULL или NOT NULL?
InventoryID Вещь Количество 3 сливы
Работа с NULL