Значения NULL

Оценить
(0 голоса)

Значение null является специальным значением, которое может быть присвоено столбцу. Это значение обычно используется, когда информация в столбце неизвестна или неприменима. Например, в случае, когда не известен номер домашнего телефона у служащего компании, рекомендуется присваивать значение null столбцу home_telephone.

Любое арифметическое выражение будет возвращать значение null, если любой операнд в этом выражении имеет значение null. Поэтому в унарных арифметических операциях (если а- выражение, возвращающее значение null) оба +а и -а возвращают null. В бинарных выражениях, если один или оба операнда а или в имеют значение null, то результатом выражений а+в, а-в, а*в, а/в и а%в также будет null. Операнды айв должны быть числовыми выражениями.

Если выражение содержит операторы сравнения и один оператор (или оба) имеет (имеют) значение null, то результатом этой операции будет null. Следовательно, каждое из выражений а = в, а о в, а < в иа > в также вернет

null.

В логических выражениях and, or, not поведение значений null определяется таблицами истинности (табл. 4.11-4.13), где т означает истину, f- ложь, а и - неизвестное значение (null). В этих таблицах в строках и столбцах последовательно представлены истинностные значения логических выражений, с которыми выполняются операторы, а на пересечениях строк и столбцов даны значения результата.

Значения NULL

 

Любое значение null в аргументе агрегатной функции avg, sum, max, min и count исключается из вычислений соответствующей функции (за исключением функции count(*)). Если все обрабатываемые столбцы содержат значение null, то функция возвращает null. Агрегатная функция count(*) обрабатывает все значения null так же, как и непустые значения. Если все столбцы содержат только значения null, то результатом функции count (distinct имя_столбца) будет 0.

Значения null отличаются от всех других значений. Для числовых типов данных есть различие между нулевым значением и значением null. То же самое справедливо в отношении пустой строки и значением null для символьных типов данных.

Столбец в таблице допускает значение null, если при его объявлении явно было указано null. С другой стороны, значения null не разрешены, если в объявлении столбца явно указано not null. Если пользователь не указывает ни null, ни not null при задании типа данных столбца (за исключением timestamp), то применяются следующие значения:

♦ null, если опция ansi_null_dflt_on в операторе set установлена в on;

♦ not null, если опция ansi_null_dflt_off в операторе set установлена в on.

Если оператор set не активирован, то столбец будет иметь свойство not null по умолчанию. (Столбцы типа данных timestamp могут быть объявлены только как столбцы not null.)

Существует также другая опция в операторе set: concat_null_yields_null. Эта опция влияет на операцию конкатенации со значением null, так что любая конкатенация со значением null даст результат null. Например:

'San Francisco'  + null = null


Подробнее в этой категории: « Основные объекты SQL
Основные объекты SQL
Значения литералов
Разделители
Комментарии
Идентификаторы

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.