在线文档教程

SQLite Keywords

SQL:SQLite可辨识的语言

【置顶】

SQLite 关键字

SQL 标准指定了大量的关键字,这些关键字不能用作表,索引,列,数据库,用户定义函数,归类,虚拟表模块或任何其他命名对象的名称。关键字列表很长,很少有人能记住它们。对于大多数 SQL 代码,最安全的方法是不要将任何英文单词用作用户定义对象的名称。

如果您想将关键字用作名称,就需要引用它。在 SQLite 中有四种引用关键字的方法:

'keyword' A keyword in single quotes is a string literal. "keyword" A keyword in double-quotes is an identifier. [keyword] A keyword enclosed in square brackets is an identifier. This is not standard SQL. This quoting mechanism is used by MS Access and SQL Server and is included in SQLite for compatibility. `keyword` A keyword enclosed in grave accents (ASCII code 96) is an identifier. This is not standard SQL. This quoting mechanism is used by MySQL and is included in SQLite for compatibility.

为了在遇到旧版本 SQL 语句时保持一定的适应力,SQLite 有时会遵从于上面的引用规则:

  • 在允许标识符但不允许字符串字面值的环境中,如果使用单引号中的关键字(例如:'key''glob'),则该标记被理解为标识符,而非字符串文字。

  • 在无法将其解析为标识符但允许使用字符串字面值的环境中,如果使用双引号(例如:“key”“glob”)中的关键字,则该标记将被理解为字符串文本,而非一个标识符。

程序员需要注意的是,不要使用前面的项目符号中描述的两个异常。我们强调,以上的存在只是为了使旧版本的和格式不正确的SQL语句能够正确运行,而新版本与未来的SQLite使用如上操作则可能会因为无法接受上述例外所涵盖的格式错误的语句而出现错误。

当SQLite采用新功能时,它会时不时添加新的关键字。因此,为了防止您的代码被未来的增强功能所破坏,即使在不需要的情况下,也应该经常引用那些为英文单词的标识符。

下面的列表显示了任何版本的SQLite中,可能使用的所有关键字,不考虑编译时选项结果。大多数合理的配置都使用以下大部分或所有关键字,但在禁用SQL语言功能时可能会省略其中某些关键字。无论编译时配置如何,不在以下124个元素列表中的任何标识符都不是SQLite中SQL分析器的关键字:

  • 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

  • RECURSIVE

  • 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

  • WITH

  • WITHOUT

SQLite is in the Public Domain.