Почему value="" записывает пустоту, а не NULL?
================================================

 Как я понял, в SQL  

NULL - это пустота и лучше записывать его, чем пустую строку.  

Или нет разницы, на NULL или на пустоту я буду проверять колонку?  

Просто с записью NULL возникают проблемы, а записать пустоту - нетрудно.  

  

И если NULL лучше, то как записать его через value?  

value="NULL" - записывает "NULL" в виде строки, а не в виде NULL 

 NULL и пустая строка есть две совершенно разные вещи (исключение - Оракл). NULL - это отсутствие любого, в том числе пустого, значения. 

 Убрать кавычки, чтобы это был NULL, а не текстовая строка со словом "NULL" 

 Пустая строка и NULL это разные вещи  

0 и NULL тоже разные вещи  

  

При этом в том же PHP существуют 3 различные функции:  

isset, empty, is\_null   

И все дают разный результат  

  

Пустая строка это текст, а NULL это неопределенная переменная (значение).