Ответ 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.
Надеюсь, что это поможет.