Приложения

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

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

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

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

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

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

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

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

Ясно, что было бы неправильно включать количество 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> ВЫБЕРИТЕ ИНВЕНТОРИД, ПУНКТ, КОЛИЧЕСТВО 
ИЗ ИНВЕНТАРЯ,
ГДЕ КОЛИЧЕСТВО НЕ ПУСТО;
Похожие посты
Приложения

34 лучших бесплатных программных инструмента для резервного копирования

Приложения

Лучшие онлайн-инструменты для встреч

Приложения

11 лучших бесплатных почтовых аккаунтов

Приложения

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