Keywords & Identifiers

On this page Carat arrow pointing down

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 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 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 ("). You can also use double-quotes to preserve case-sensitivity in database, table, view, and column names. However, all references to such identifiers 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
On this page

Yes No