Что означает "Allow Null" и что он делает?
Mysql: Разрешить нулевое значение
Ответ 1
Чтобы понять, что означает "Разрешить Null" , вам нужно понять, что такое NULL, и понять, что он отличается от простой или пустой строки.
NULL - специальное значение в SQL. Он указывает данные, которые не существуют. Это отличается от данных, которые пусты.
Когда вы создаете таблицу в MySQL, она позволяет указать, разрешено ли вашим полям NULL. Если вы укажете "Разрешить Null" , тогда в этих полях можно будет создавать записи с NULL значениями.
Это может быть полезно вам в некоторых случаях. Например, поле "Да/Нет" может быть логическим значением, но если пользователь не указал их предпочтения, вы можете установить значение NULL, чтобы указать это, а не на "да" или "нет".
Во многих случаях разрешение NULL может быть проблематичным. Поля, установленные на NULL, могут создавать неожиданные результаты в запросах, поскольку NULL не соответствует тем же правилам, что и другие значения во всех случаях. например: если вы запрашиваете приведенное выше поле примера WHERE myfield != 1, вы можете ожидать получить результаты для всех записей, которые не равны 1. Однако поля NULL не будут возвращены; вам нужно написать для них специальный случай.
NULL также используется как значение по умолчанию при выполнении JOIN запросов, в которых некоторые из результатов не имеют записи для присоединения. Неизвестные поля из объединенной таблицы будут установлены на NULL.
В общем случае, если вы не знаете, что делать с "Разрешить Null" , самым безопасным вариантом является его отсутствие для нулевых значений.
Для получения дополнительной информации см. запись в Wikipedia для NULL в SQL.
Надеюсь, что это поможет.
Ответ 2
Разрешить Null означает, что при изменении или вставке данных вам не нужно заполнять эти данные. Не обязательно.
Ответ 3
В сущности, если вы разрешаете нулевое значение, вы говорите, что указанное поле может содержать законное значение (например: 2011-04-02, если это была дата), а также "NULL" (или "no значение" ).
Таким образом, если вы представляете ситуацию, когда поле было обязательным, оно всегда должно быть обозначено как NOT NULL в объявлении схемы, тогда как необязательное поле может быть оставлено как есть.
Для получения дополнительной информации ознакомьтесь с разделом Работа с NULL значения в руководстве MySQL, которое (среди прочего) аккуратно суммирует такие вещи:
Концептуально, NULL означает "отсутствующий неизвестное значение" и обрабатывается несколько иначе, чем другие значения.