SQL statements consist of two fundamental components:

  • Keywords: Words with specific meaning in SQL like CREATE, INDEX, and BOOL
  • Identifiers: Names for things like databases and some functions

Keywords

Keywords make up SQL's vocabulary and can have specific meaning in statements. Each SQL keyword that CockroachDB supports is on one of four lists:

Reserved keywords have fixed meanings and are not typically allowed as identifiers. All other types of keywords are considered non-reserved; they have special meanings in certain contexts and can be used as identifiers in other contexts.

Keyword Uses

Most users asking about keywords want to know more about them in terms of:

Identifiers

Identifiers are most commonly used as names of objects like databases, tables, or columns—because of this, the terms "name" and "identifier" are often used interchangeably. However, identifiers also have less-common uses, such as changing column labels with SELECT.

Rules for Identifiers

In our SQL grammar, all values that accept an identifier must:

  • Begin with a Unicode letter or an underscore (_). Subsequent characters can be letters, underscores, digits (0-9), or dollar signs ($).
  • Not equal any SQL keyword unless the keyword is accepted by the element's syntax. For example, name accepts Unreserved or Column Name keywords.

To bypass either of these rules, simply surround the identifier with double-quotes ("). However, all references to it must also include double-quotes.

Some statements have additional requirements for identifiers. For example, each table in a database must have a unique name. These requirements are documented on each statement's page.

See Also



Yes No