Учебники

MariaDB — нулевые значения

При работе со значениями NULL помните, что они являются неизвестными значениями. Это не пустые строки или ноль, которые являются допустимыми значениями. При создании таблицы спецификации столбцов позволяют задавать для них нулевые значения или отклонять их. Просто используйте предложение NULL или NOT NULL. Это применимо в случаях отсутствия информации о записи, такой как идентификационный номер.

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

NULL нечувствителен к регистру и имеет следующие псевдонимы:

  • НЕИЗВЕСТНО (логическое значение)
  • \ N

NULL операторы

Стандартные операторы сравнения нельзя использовать с NULL (например, =,>,> =, <=, <или! =), Поскольку все сравнения со значением NULL возвращают NULL, а не true или false. Сравнения с NULL или, возможно, содержащие его, должны использовать оператор «<=>» (NULL-SAFE).

Другие доступные операторы —

  • IS NULL — проверяет значение NULL.

  • IS NOT NULL — подтверждает отсутствие значения NULL.

  • ISNULL — возвращает значение 1 при обнаружении значения NULL и 0 при его отсутствии.

  • COALESCE — возвращает первое ненулевое значение списка или возвращает нулевое значение при его отсутствии.

IS NULL — проверяет значение NULL.

IS NOT NULL — подтверждает отсутствие значения NULL.

ISNULL — возвращает значение 1 при обнаружении значения NULL и 0 при его отсутствии.

COALESCE — возвращает первое ненулевое значение списка или возвращает нулевое значение при его отсутствии.

Сортировка пустых значений

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

Есть два способа сделать это, как показано ниже —

SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;

Другой способ —

SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;

NULL Функции

Функции обычно выводят NULL, когда любые параметры равны NULL. Однако существуют функции, специально предназначенные для управления значениями NULL. Они —

  • IFNULL () — Если первое выражение не NULL, оно возвращает его. Когда он оценивается как NULL, он возвращает второе выражение.

  • NULLIF () — возвращает NULL, когда сравниваемые выражения равны, если нет, возвращает первое выражение.

IFNULL () — Если первое выражение не NULL, оно возвращает его. Когда он оценивается как NULL, он возвращает второе выражение.

NULLIF () — возвращает NULL, когда сравниваемые выражения равны, если нет, возвращает первое выражение.

Такие функции, как SUM и AVG игнорируют значения NULL.

Вставка пустых значений

При вставке значения NULL в столбец, объявленный NOT NULL, возникает ошибка. В режиме SQL по умолчанию в столбец NOT NULL вместо этого будет вставлено значение по умолчанию в зависимости от типа данных.

Если поле представляет собой TIMESTAMP, AUTO_INCREMENT или виртуальный столбец, MariaDB по-разному управляет значениями NULL. Вставка в столбец AUTO_INCREMENT приводит к тому, что следующий номер в последовательности вставляется на его место. В поле TIMESTAMP MariaDB вместо этого назначает текущую метку времени. В виртуальных столбцах, обсуждаемых далее в этом руководстве, назначается значение по умолчанию.

УНИКАЛЬНЫЕ индексы могут содержать много значений NULL, однако первичные ключи не могут быть NULL.

Значения NULL и команда Alter

Когда вы используете команду ALTER для изменения столбца, при отсутствии спецификаций NULL MariaDB автоматически присваивает значения.