Small. Fast. Reliable.
Choose any three.

SQLite Requirement Matrix Details
lang_keywords.html

Index Summary Markup Original


R-58133-32721-60366-63441-61614-07001-53385-02322 tcl slt th3 src

A keyword in single quotes is a string literal.

/* IMP: R-58133-32721 */
# EVIDENCE-OF: R-58133-32721 A keyword in single quotes is a string
# literal.

R-49991-12716-30919-42596-27111-39963-53414-21739 tcl slt th3 src

A keyword in double-quotes is an identifier.

/* IMP: R-49991-12716 */
# EVIDENCE-OF: R-49991-12716 A keyword in double-quotes is an
# identifier.

R-15400-09401-11917-03904-29330-15741-54444-34897 tcl slt th3 src

A keyword enclosed in square brackets is an identifier.

/* IMP: R-15400-09401 */
# EVIDENCE-OF: R-15400-09401 A keyword enclosed in square brackets is an
# identifier.

R-57064-52104-64431-17226-40317-39085-08319-65218 tcl slt th3 src

A keyword enclosed in grave accents (ASCII code 96) is an identifier.

/* IMP: R-57064-52104 */
# EVIDENCE-OF: R-57064-52104 A keyword enclosed in grave accents (ASCII
# code 96) is an identifier.

R-33075-33190-25707-00729-29148-31049-04309-45993 tcl slt th3 src

If a keyword in single quotes (ex: 'key' or 'glob') is used in a context where an identifier is allowed but where a string literal is not allowed, then the token is understood to be an identifier instead of a string literal.

/* IMP: R-33075-33190 */
# EVIDENCE-OF: R-33075-33190 If a keyword in single quotes (ex: 'key' or
# 'glob') is used in a context where an identifier is allowed but where
# a string literal is not allowed, then the token is understood to be an
# identifier instead of a string literal.

R-57360-40691-20822-63524-22530-36364-65033-34134 tcl slt th3 src

If a keyword in double quotes (ex: "key" or "glob") is used in a context where it cannot be resolved to an identifier but where a string literal is allowed, then the token is understood to be a string literal instead of an identifier.

/* IMP: R-57360-40691 */
# EVIDENCE-OF: R-57360-40691 If a keyword in double quotes (ex: "key" or
# "glob") is used in a context where it cannot be resolved to an
# identifier but where a string literal is allowed, then the token is
# understood to be a string literal instead of an identifier.

R-12472-60312-38710-03800-42859-05191-18747-22009 tcl slt th3 src

Regardless of the compile-time configuration, any identifier that is not on the following 145 element list is not a keyword to the SQL parser in SQLite:

  1. ABORT
  2. ACTION
  3. ADD
  4. AFTER
  5. ALL
  6. ALTER
  7. ALWAYS
  8. ANALYZE
  9. AND
  10. AS
  11. ASC
  12. ATTACH
  13. AUTOINCREMENT
  14. BEFORE
  15. BEGIN
  16. BETWEEN
  17. BY
  18. CASCADE
  19. CASE
  20. CAST
  21. CHECK
  22. COLLATE
  23. COLUMN
  24. COMMIT
  25. CONFLICT
  26. CONSTRAINT
  27. CREATE
  28. CROSS
  29. CURRENT
  30. CURRENT_DATE
  31. CURRENT_TIME
  32. CURRENT_TIMESTAMP
  33. DATABASE
  34. DEFAULT
  35. DEFERRABLE
  36. DEFERRED
  37. DELETE
  38. DESC
  39. DETACH
  40. DISTINCT
  41. DO
  42. DROP
  43. EACH
  44. ELSE
  45. END
  46. ESCAPE
  47. EXCEPT
  48. EXCLUDE
  49. EXCLUSIVE
  50. EXISTS
  51. EXPLAIN
  52. FAIL
  53. FILTER
  54. FIRST
  55. FOLLOWING
  56. FOR
  57. FOREIGN
  58. FROM
  59. FULL
  60. GENERATED
  61. GLOB
  62. GROUP
  63. GROUPS
  64. HAVING
  65. IF
  66. IGNORE
  67. IMMEDIATE
  68. IN
  69. INDEX
  70. INDEXED
  71. INITIALLY
  72. INNER
  73. INSERT
  74. INSTEAD
  75. INTERSECT
  76. INTO
  77. IS
  78. ISNULL
  79. JOIN
  80. KEY
  81. LAST
  82. LEFT
  83. LIKE
  84. LIMIT
  85. MATCH
  86. NATURAL
  87. NO
  88. NOT
  89. NOTHING
  90. NOTNULL
  91. NULL
  92. NULLS
  93. OF
  94. OFFSET
  95. ON
  96. OR
  97. ORDER
  98. OTHERS
  99. OUTER
  100. OVER
  101. PARTITION
  102. PLAN
  103. PRAGMA
  104. PRECEDING
  105. PRIMARY
  106. QUERY
  107. RAISE
  108. RANGE
  109. RECURSIVE
  110. REFERENCES
  111. REGEXP
  112. REINDEX
  113. RELEASE
  114. RENAME
  115. REPLACE
  116. RESTRICT
  117. RIGHT
  118. ROLLBACK
  119. ROW
  120. ROWS
  121. SAVEPOINT
  122. SELECT
  123. SET
  124. TABLE
  125. TEMP
  126. TEMPORARY
  127. THEN
  128. TIES
  129. TO
  130. TRANSACTION
  131. TRIGGER
  132. UNBOUNDED
  133. UNION
  134. UNIQUE
  135. UPDATE
  136. USING
  137. VACUUM
  138. VALUES
  139. VIEW
  140. VIRTUAL
  141. WHEN
  142. WHERE
  143. WINDOW
  144. WITH
  145. WITHOUT

/* IMP: R-12472-60312 */
# EVIDENCE-OF: R-12472-60312 Regardless of the compile-time
# configuration, any identifier that is not on the following 145 element
# list is not a keyword to the SQL parser in SQLite: ABORT ACTION ADD
# AFTER ALL ALTER ALWAYS ANALYZE AND AS ASC ATTACH AUTOINCREMENT BEFORE
# BEGIN BETWEEN BY CASCADE CASE CAST CHECK COLLATE COLUMN COMMIT
# CONFLICT CONSTRAINT CREATE CROSS CURRENT CURRENT_DATE CURRENT_TIME
# CURRENT_TIMESTAMP DATABASE DEFAULT DEFERRABLE DEFERRED DELETE DESC
# DETACH DISTINCT DO DROP EACH ELSE END ESCAPE EXCEPT EXCLUDE EXCLUSIVE
# EXISTS EXPLAIN FAIL FILTER FIRST FOLLOWING FOR FOREIGN FROM FULL
# GENERATED GLOB GROUP GROUPS HAVING IF IGNORE IMMEDIATE IN INDEX
# INDEXED INITIALLY INNER INSERT INSTEAD INTERSECT INTO IS ISNULL JOIN
# KEY LAST LEFT LIKE LIMIT MATCH NATURAL NO NOT NOTHING NOTNULL NULL
# NULLS OF OFFSET ON OR ORDER OTHERS OUTER OVER PARTITION PLAN PRAGMA
# PRECEDING PRIMARY QUERY RAISE RANGE RECURSIVE REFERENCES REGEXP
# REINDEX RELEASE RENAME REPLACE RESTRICT RIGHT ROLLBACK ROW ROWS
# SAVEPOINT SELECT SET TABLE TEMP TEMPORARY THEN TIES TO TRANSACTION
# TRIGGER UNBOUNDED UNION UNIQUE UPDATE USING VACUUM VALUES VIEW VIRTUAL
# WHEN WHERE WINDOW WITH WITHOUT