RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.
Ключевые слова SQLite

Стандарт SQL определяет большое количество ключевых слов, которые не могут использоваться в качестве названий таблиц, индексов, колонок, баз данных, определенных пользователями функций, сопоставлений, виртуальных модулей или любого другого именованного объекта. Список ключевых слов такой длинный, что немного людей могут помнить их всех. Для большей части кода SQL ваша самая безопасная ставка это никогда не должна использовать английское языковое слово в качестве названия определенного пользователями объекта.

Если вы хотите использовать ключевое слово в качестве имени, необходимо указать его. Есть четыре способа указать ключевые слова в SQLite:

'keyword' Ключевое слово в одинарных кавычках это строковый литерал.
"keyword" Ключевое слово в двойных кавычках это идентификатор.
[keyword] Ключевое слово в квадратных скобках, является идентификатором. Это не стандартный SQL. Этот механизм цитирования используется MS Access и SQL Server и включен в SQLite для совместимости.
`keyword` Ключевое слово в апострофах (ASCII code 96) является идентификатором. Это не стандартный SQL. Этот механизм цитирования используется MySQL и включен в SQLite для совместимости.

Для упругости, когда работает с историческими SQL-операторами, SQLite будет иногда приспосабливать правила цитирования выше:

  • Если ключевое слово в одинарных кавычках ('key' или 'glob') используется в контексте, где идентификатор позволен, но где строковый литерал не позволен, тогда символ, как понимают, является идентификатором вместо строкового литерала.

  • Если ключевое слово в двойных кавычках ("key" или "glob") используется в контексте, где это не может быть решено к идентификатору, но где строковый литерал позволен, тогда символ, как понимают, является строковым литералом вместо идентификатора.

Программистов предостерегают не использовать эти два исключения, описанных в предыдущих абзацах. Мы подчеркиваем, что они существуют только, чтобы старые и плохо сформированные SQL-операторы работали правильно. Будущие версии SQLite могли бы поднять ошибки вместо того, чтобы принять неправильные запросы, покрытые исключениями выше.

SQLite добавляет новые ключевые слова время от времени, когда он получает новые особенности. Таким образом, чтобы препятствовать тому, чтобы ваш код был нарушен будущими улучшениями, необходимо обычно цитировать любой идентификатор, который является английским языковым словом.

Список ниже показывает, что все возможные ключевые слова, используемые любой сборкой SQLite, независимо от вариантов времени компиляции. Самые разумные конфигурации используют больше всего или все эти ключевые слова, но некоторые ключевые слова могут быть опущены, когда языковые опции SQL отключены. Запросы могут использовать sqlite3_keyword_count(), sqlite3_keyword_name() и sqlite3_keyword_check(), чтобы определить ключевые слова, признанные SQLite во время выполнения. Независимо от конфигурации времени компиляции любой идентификатор, который не находится в следующем списке с 147 элементами, не является ключевым словом анализата SQL в 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
  • MATERIALIZED
  • 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
  • RETURNING
  • 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