Как стать автором
Обновить

NULL в SQL: Что это такое и почему его знание необходимо каждому разработчику

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров37K
Всего голосов 11: ↑6 и ↓5+1
Комментарии5

Комментарии 5

ЗакрепленныеЗакреплённые комментарии

И стоит упомянуть, что некоторые особо одаренные RDBMS'ы (привет, Oracle!) трактуют пустую строку как NULL, что жутко раздражает.

И стоит упомянуть, что некоторые особо одаренные RDBMS'ы (привет, Oracle!) трактуют пустую строку как NULL, что жутко раздражает.

хороший пример в копилку :D

Ничего не написано, что благодаря LEFT/RIGHT/FULL OUTER JOIN можно получить поля со значением NULL, даже если выбираются столбцы с NOT NULL ограничением.

Значение NULL может трактоваться не только как отсутствие информации (мы не знаем), но и как отсутствие смысла в информации (например в зависимости от других связанных данных).

Например, выражение NULL = NULL должно вернуть false, но на практике может вернуть NULL

Оно и должно вернуть NULL, что хорошо согласуется с отрицанием этого выражения - оно также вернет NULL.

Функция ISNULL сколько мне известно не стандарт SQL, более верным будет использовать COALESCE.

Сравнение значений. Если в таблице присутствуют значения NULL, то при выполнении операции сравнения, например, WHERE column_name = NULL, результатом будет False. Вместо этого нужно использовать оператор IS NULL.

Это ("результатом будет False") неправда. результатом будет Unknown, который и не True, и не False. Если бы результатом был False, то условие вида where not (colum_name = null) возвращало бы всё, где column_name не-null, а это так не работает.

Очередной "ман по нуллу". К сожалению, достаточно низкокачественный. Практически халтура.

Ладно, нет перечня операций, которые, имея в операндах NULL, тем не менее дают non-NULL результат (типа NULL OR TRUE), без него и пережить можно. Но вот отсутствие описания реально проблемных случаев от непонимания обработки NULL, и в первую очередь WHERE IN - это форменное безобразие.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации