MariaDB - нулевые значения
При работе со значениями NULL помните, что это неизвестные значения. Это не пустые строки или ноль, которые являются допустимыми значениями. При создании таблицы спецификации столбцов позволяют настроить их для приема нулевых значений или их отклонения. Просто используйте предложение NULL или NOT NULL. У этого есть приложения в случаях отсутствия информации о записи, такой как идентификационный номер.
Пользовательские переменные имеют значение NULL до явного присвоения. Сохраненные стандартные параметры и локальные переменные позволяют установить значение NULL. Когда локальная переменная не имеет значения по умолчанию, она имеет значение NULL.
NULL не чувствителен к регистру и имеет следующие псевдонимы:
- НЕИЗВЕСТНО (логическое значение)
- \N
Операторы NULL
Стандартные операторы сравнения не могут использоваться с NULL (например, =,>,> =, <=, <или! =), Потому что все сравнения со значением NULL возвращают NULL, а не истину или ложь. При сравнении с NULL или, возможно, содержащим его, необходимо использовать оператор «<=>» (NULL-SAFE).
Другие доступные операторы -
IS NULL - он проверяет значение NULL.
IS NOT NULL - подтверждает отсутствие значения NULL.
ISNULL - возвращает значение 1 при обнаружении значения NULL и 0 при его отсутствии.
COALESCE - возвращает первое значение списка, отличное от NULL, или возвращает значение NULL при его отсутствии.
Сортировка значений NULL
В операциях сортировки значения 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, когда сравниваемые выражения равны, в противном случае возвращает первое выражение.
Такие функции, как SUM и AVG, игнорируют значения NULL.
Вставка значений NULL
При вставке значения NULL в столбец, объявленный NOT NULL, возникает ошибка. В режиме SQL по умолчанию столбец NOT NULL вместо этого вставляет значение по умолчанию в зависимости от типа данных.
Когда поле является TIMESTAMP, AUTO_INCREMENT или виртуальным столбцом, MariaDB по-разному управляет значениями NULL. Вставка в столбец AUTO_INCREMENT приводит к тому, что на его место вставляется следующий номер в последовательности. Вместо этого в поле TIMESTAMP MariaDB назначает текущую временную метку. В виртуальных столбцах, теме, обсуждаемой далее в этом руководстве, назначается значение по умолчанию.
Индексы UNIQUE могут содержать много значений NULL, однако первичные ключи не могут быть NULL.
Значения NULL и команда Alter
Когда вы используете команду ALTER для изменения столбца, при отсутствии спецификации NULL, MariaDB автоматически присваивает значения.