Боюсь, что ...
это зависит!
На этот вопрос нет однозначного ответа.
Как указано в других ответах, на уровне SQL , NULL и пустая строка имеют очень разную семантику , первая указывает на то, что значение неизвестно, последняя указывает на то, что значение - это «невидимая вещь» (на экранах и в отчете), но тем не менее это «известное значение». Примером, обычно приводимым в этом контексте, является отчество. Нулевое значение в столбце «middle_name» будет означать, что мы не знаем, имеет ли основной человек отчество или нет, и если да, то каково это имя, пустая строка будет означать, что мы «знаем», что этот человек делает не имеет отчество.
При этом два других вида факторов могут помочь вам выбрать один из этих вариантов для данного столбца.
- Сама семантика базовых данных на уровне приложения.
- Некоторые соображения относительно работы SQL с нулевыми значениями
Семантика данных
Например, важно знать, является ли пустая строка допустимым значением для базовых данных. Если это так, мы можем потерять информацию, если мы также используем пустую строку для «неизвестной информации». Другое соображение заключается в том, можно ли использовать какое-то альтернативное значение в случае, когда у нас нет информации для столбца; Возможно, 'n / a' или 'unspecified' или 'tbd' являются лучшими значениями.
Поведение SQL и утилиты
Учитывая поведение SQL, выбор использования или отсутствия использования NULL может быть обусловлен соображениями пространства, желанием создать фильтрованный индекс или удобством функции COALESCE () (которую можно эмулировать с помощью операторов CASE, но более многословно). Другое соображение заключается в том, может ли какой-либо запрос пытаться запросить несколько столбцов для добавления их (как в SELECT name + ',' + middle_name AS LongName и т. Д.).
Помимо обоснованности выбора NULL или пустой строки, в данной ситуации общее соображение состоит в том, чтобы попытаться быть максимально последовательным, т. Е. Пытаться придерживаться ОДНОГО конкретного способа и только / преднамеренно / явно отступать от этого пути по уважительным причинам и в некоторых случаях.