Source: http://www.sqlite.org/lang_keywords.html
Programmers are cautioned not to use the two exceptions described in the previous bullets. we emphasize that they exist only so that old and ill-formed SQL statements will run correctly. future versions of SQLite might change to raise errors instead of accepting the malformed statements covered by the exceptions above.
SQLite adds new keywords from time to time when it takes on new features. so to prevent your code from being broken by future enhancements, you shocould normally quote any identifier that is an English language word, even if you do not have.
The list below shows all possible keywords used by any build of SQLite regardless of compile-time options. most reasonable configurations use most or all of these keywords, but some keywords may be omitted when SQL language features are disabled. regardless of the compile-time configuration, any identifier that is not on the following 121 element list is not a keyword to the SQL parser in SQLite:
Abort Action Add After All Alter Analyze And As ASC Attach Autoincrement Before Begin Between By Cascade Case Cast Check Collate Column Commit Conflict Constraint |
Create Cross Current_date Current_time Current_timestamp Database Default Deferrable Deferred Delete Desc Detach Distinct Drop Each Else End Escape Except Exclusive Exists Explain Fail For Foreign |
From Full Glob Group Having If Ignore Immediate In Index Indexed Initially Inner Insert Instead Intersect Into Is Isnull Join Key Left Like Limit Match |
Natural No Not Notnull Null Of Offset On Or Order Outer Plan Pragma Primary Query Raise References Regexp Reindex Release Rename Replace Restrict Right Rollback |
row savepoint select set table temp temporary then to transaction trigger Union unique Update using vacuum values View virtual when where |