SQLite Forum

Constraint Name
For CHECK constraints, SQLite shows the name in error messages. For other constraints, the SQL standard allows them.

I guess treating non-constraint column properties as constraints makes the SQLite grammar simpler, although it is not allowed by the standard:
<column definition> ::=
		<column name> [ <data type> | <domain name> ] [ <reference scope check> ]
		[ <default clause> | <identity column specification> | <generation clause> ]
		[ <column constraint definition>... ] [ <collate clause> ]