NULL: это слово из четырех букв… Я, сколько мог, оттягивал этот момент, но он настал: пора обратиться
к теме, которую обычно встречают с опаской, неуверенностью и трепе
том, – значение
null
.
Null
– это отсутствие значения. Например, пока
сотрудник не уволен, в его столбце
end_date
таблицы
employee
должно
быть записано
null
. В данной ситуации нет значения, которое могло
бы быть помещено в столбец
end_date
и имело бы смысл. Однако
null
–
коварный тип, поскольку имеет несколько оттенков:
Неприменимый Например, столбец с ID сотрудника для транзакции, которая вы
полняется с банкоматом.
Значение еще не известно Например, если в момент создания строки клиента федеральный ID
неизвестен.
Значение не определено Например, если создается счет для продукта, который еще не был
добавлен в БД.
Некоторые теоретики считают, что для каждой из этих (и дру
гих) ситуаций следовало бы использовать разные выражения,
но по мнению большинства практикующих специалистов при
нескольких значениях
null
путаницы было бы гораздо больше.
При работе с
null
необходимо помнить:
• Выражение может
быть нулевым (
null
), но оно никогда не может
быть
равным нулю.
• Два
null
никогда не равны друг другу.
Проверить выражение на значение
null
можно с помощью оператора
is
null
, как показано в следующем примере:
mysql>
SELECT emp_id, fname, lname, superior_emp_id >
FROM employee >
WHERE superior_emp_id IS NULL; +++++
| emp_id | fname | lname | superior_emp_id |
+++++
| 1 | Michael | Smith | NULL |
+++++
1 row in set (0.00 sec)
NULL: это слово из четырех букв…
87 Этот запрос возвращает всех сотрудников, у которых нет начальника
(superior). Вот тот же запрос, но вместо
is
null
используется
= null
:
mysql>