Какой смысл “ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ NOT NULL ''”?

EdgeLib выглядит многообещающим и имеет бета iPhone, о которой объявляют, но не открытый все же.

22
задан GSto 12 November 2009 в 16:10
поделиться

7 ответов

NULL имеют особое поведение: сравнение чего-либо с NULL возвращает вам NULL , что является чем-то другим, кроме false или ] 0 . Это означает "

36
ответ дан 29 November 2019 в 04:09
поделиться

null и "" - не одно и то же, поэтому здесь нет противоречия.

Семантическое значение null / "" зависит от человека и часто является "религиозным" вопросом. Для некоторых людей в некоторых схемах они, конечно, могут быть одинаковыми, но это не обязательно. Например, «» может означать «Я явно просил пользователя ввести данные, а они предпочли ничего не вводить», в то время как ноль может означать «Я даже не просил ввода».

11
ответ дан 29 November 2019 в 04:09
поделиться

Существует разница между нулевым значением и пустой строкой - по крайней мере, в SQL.

SELECT LENGTH('tata');
4

SELECT LENGTH(NULL);
NULL

SELECT LENGTH('tata')-LENGTH('');
4

SELECT LENGTH('tata')-LENGTH(NULL);
NULL
4
ответ дан 29 November 2019 в 04:09
поделиться

Большинство языков программирования, которые взаимодействуют с базой данных, изначально не поддерживают NULL, которая работает так же, как в базе данных. Например, в C # null <> DbNull.Value. В VB большинство типов данных не могут справиться с семантикой null, например, вы не можете сохранить null в Date или Int и т. Д. Чем меньше количество нулей, которые видят клиентские программы, тем меньше будет головной боли. В случае VB закрывающая вещь, означающая null для строк, имеет значение Empty, что ближе к неинициализированному, а не совсем то же значение, что и NULL в смысле «неизвестно»

1
ответ дан 29 November 2019 в 04:09
поделиться

Потому что иногда на некоторых языках запрос «select» дает вам строку NULL , и вам нужно будет проверить, настоящая ли это строка с содержимое "NULL" или действительно пустое.

С "" это проще всего (IMHO)

0
ответ дан 29 November 2019 в 04:09
поделиться

Мы не разрешаем нули, потому что программный доступ к полю из таблицы данных со значением DBnull вызывает исключение, а пустая строка имеет значение и, следовательно, не вызывает ошибки.

0
ответ дан 29 November 2019 в 04:09
поделиться

В дополнение к тому, что упомянул @Piskvor, эта практика также существует для предотвращения некоторых потенциальных исключений NullPointerExceptions в логике приложения при заполнении bean-компонентов / объектов и т. Д. После чтения из БД

0
ответ дан 29 November 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: