CHECK и DEFAULT: правила и начальные значения
Запретим отрицательный остаток и зададим поведение при пропуске количества. Отличим ноль, пропуск и NULL.
DEFAULT подставляет значение при пропуске столбца, не заменяет явный NULL. CHECK проверяет условие, но NULL в SQLite не ошибка. Обязательность требует NOT NULL.