Ограничение NULL и NOT NULL отличаются тем, что они означают разные ситуации с возможными значениями для столбца таблицы. 14
Ограничение NULL указывает, что столбец может иметь значение NULL (это поведение по умолчанию). 1 Такое ограничение отсутствует в стандарте SQL, его используют в PostgreSQL только для совместимости с некоторыми другими СУБД. 1
Ограничение NOT NULL, в свою очередь, означает, что столбец не может иметь значение NULL. 15 Если к столбцу применено такое ограничение, нельзя вставить новую строку в таблицу без добавления не-NULL-значения в этот столбец. 5
Таким образом, ограничение NULL разрешает нулевые значения, а ограничение NOT NULL запрещает их. 13