Нулевое значение в базе данных - PullRequest
3 голосов
/ 19 июня 2009

Нулевое значение означает

  1. Нет значения
  2. Не применимо, не назначено, неизвестно или недоступно

Что верно?

Ответы [ 12 ]

3 голосов
/ 19 июня 2009

Все дело в контексте, в котором он используется. Нулевое значение означает, что значения нет, но причина этого будет зависеть от домена, в котором оно используется. Во многих случаях перечисленные вами элементы являются допустимыми значениями NULL.

2 голосов
/ 19 июня 2009

Это может означать любую из этих вещей (и не всегда очевидно, какая именно), что является одним из аргументов против использования нулей вообще.

См .: http://en.wikipedia.org/wiki/Null_(SQL)#Controversy

1 голос
/ 19 июня 2009

Единственный ответ, поддерживаемый семантикой SQL, - «неизвестно». Если это означало «нет значения», то

'Hi there' = NULL

вернет FALSE, но вернет NULL. Это связано с тем, что значение NULL в выражении означает неизвестное значение, и неизвестное значение вполне может быть «Привет!», Насколько известно системе.

1 голос
/ 19 июня 2009

ноль означает, что значение данных не существует в базе данных, что означает отсутствие информации.

Также допускает трехстороннее значение истины; правда, ложь и неизвестность.

1 голос
/ 19 июня 2009

Очевидно, у вас есть определение БД того, что означает ноль, однако для приложения это может означать что угодно. Однажды я работал над странным приложением (заявление об отказе от ответственности - я его не проектировал), в котором в таблице соединений использовался нуль для представления всех опций (предположительно, оно было разработано таким образом, чтобы «сэкономить место»). Это был дизайн БД для управления пользователями и ролями.

Так что в данном случае null означало, что пользователь был во всех ролях. Это один для ежедневного WTF. : -)

Как и многие люди, я стараюсь избегать использования нулей там, где это реально возможно.

1 голос
/ 19 июня 2009

Из Википедии

Null - это специальный маркер, используемый в Язык структурированных запросов (SQL) для указывают на то, что значение данных не существуют в базе данных. Представлен создатель реляционной базы данных модель, Е. Ф. Кодд, SQL Null служит для выполнить требование, чтобы все верно системы управления реляционными базами данных (RDBMS) поддерживают представление «недостающая информация и неприменимая информация ". Кодд также представил использование строчной греческой омеги (ω) символ для представления Null в базе данных теория. NULL также является зарезервированным SQL Ключевое слово, используемое для идентификации Null специальный маркер.

0 голосов
/ 19 июня 2009

все :-) если вы хотите добавить смысловое значение в ваше поле, добавьте ENUM

create TABLE myTable
  (
  myfield varchar(50)
  myfieldType enum ('OK','NoValue','InApplicable','Unassigned','Unknown','Unavailable') NOT NULL
  )
0 голосов
/ 19 июня 2009

Ключевое слово NULL SQL используется для представления пропущенного значения или значения, которое не применимо в реляционной таблице

0 голосов
/ 19 июня 2009

Ноль - это проверяемое состояние столбца в строке, но само по себе оно не имеет значения.

Например:

Int может быть только ..., 0,1,2,3, ..., а также NULL.

Datetime может быть только действительной датой ... и также NULL.

Бит может быть только 0 или 1 ... а также NULL.

varchar может быть строкой ... а также NULL.

видите шаблон?

Вы можете сделать столбец NOT NULL-способным, чтобы вы могли заставить столбец принимать значение.

0 голосов
/ 19 июня 2009

Ноль означает ничего, неизвестно и не имеет значения.

Это не означает, что недоступно или применимо.

...