Because the ".schema" command is not SQL. It is a CLI built-in. All of the "dot-commands" are special in that way. I think you are confused about the difference between SQL and the dot-commands in the CLI. The dot-commands are wrappers that transform into other (rather more complex) SQL statements and/or C-apis against the SQLite core. They are not part of the language. They do not follow the same rules.