CockroachDB supports the following SQL statements. Click a statement for more details.
In the built-in SQL shell, use \h [statement] to get inline help about a specific statement.
Data manipulation statements
| Statement | Usage | 
|---|---|
| CREATE TABLE AS | Create a new table in a database using the results from a selection query. | 
| DELETE | Delete specific rows from a table. | 
| EXPORT | New in v2.1: Export an entire table's data, or the results of a SELECTstatement, to CSV files. This statement is available only to enterprise users. | 
| IMPORT | Import an entire table's data via CSV files. | 
| INSERT | Insert rows into a table. | 
| SELECT | Select specific rows and columns from a table and optionally compute derived values. | 
| TABLE | Select all rows and columns from a table. | 
| TRUNCATE | Delete all rows from specified tables. | 
| UPDATE | Update rows in a table. | 
| UPSERT | Insert rows that do not violate uniqueness constraints; update rows that do. | 
| VALUES | Return rows containing specific values. | 
Data definition statements
| Statement | Usage | 
|---|---|
| ADD COLUMN | Add columns to a table. | 
| ADD CONSTRAINT | Add a constraint to a column. | 
| ALTER COLUMN | Change a column's Default constraint or drop the NOT NULLconstraint. | 
| ALTER DATABASE | Apply a schema change to a database. | 
| ALTER INDEX | Apply a schema change to an index. | 
| ALTER RANGE | New in v2.1: Change an existing system range. | 
| ALTER SEQUENCE | Apply a schema change to a sequence. | 
| ALTER TABLE | Apply a schema change to a table. | 
| ALTER TYPE | New in v2.1: Change a column's data type. | 
| ALTER USER | Add or change a user's password. | 
| ALTER VIEW | Rename a view. | 
| CONFIGURE ZONE | New in v2.1: Add, modify, reset, and remove replication zones. | 
| CREATE DATABASE | Create a new database. | 
| CREATE INDEX | Create an index for a table. | 
| CREATE SEQUENCE | Create a new sequence. | 
| CREATE TABLE | Create a new table in a database. | 
| CREATE TABLE AS | Create a new table in a database using the results from a selection query. | 
| CREATE VIEW | Create a new view in a database. | 
| DROP COLUMN | Remove columns from a table. | 
| DROP CONSTRAINT | Remove constraints from a column. | 
| DROP DATABASE | Remove a database and all its objects. | 
| DROP INDEX | Remove an index for a table. | 
| DROP SEQUENCE | Remove a sequence. | 
| DROP TABLE | Remove a table. | 
| DROP VIEW | Remove a view. | 
| EXPERIMENTAL_AUDIT | Turn SQL audit logging on or off for a table. | 
| RENAME COLUMN | Rename a column in a table. | 
| RENAME DATABASE | Rename a database. | 
| RENAME INDEX | Rename an index for a table. | 
| RENAME SEQUENCE | Rename a sequence. | 
| RENAME TABLE | Rename a table or move a table between databases. | 
| SHOW COLUMNS | View details about columns in a table. | 
| SHOW CONSTRAINTS | List constraints on a table. | 
| SHOW CREATE | View the CREATEstatement for a table, view, or sequence. | 
| SHOW DATABASES | List databases in the cluster. | 
| SHOW INDEX | View index information for a table. | 
| SHOW SCHEMAS | List the schemas in a database. | 
| SHOW TABLES | List tables or views in a database or virtual schema. | 
| SHOW EXPERIMENTAL_RANGES | Show range information about a specific table or index. | 
| SHOW ZONE CONFIGURATIONS | New in v2.1: List details about existing replication zones. | 
| SPLIT AT | Force a key-value layer range split at the specified row in the table or index. | 
| VALIDATE CONSTRAINT | Check whether values in a column match a constraint on the column. | 
Transaction management statements
| Statement | Usage | 
|---|---|
| BEGIN | Initiate a transaction. | 
| COMMIT | Commit the current transaction. | 
| RELEASE SAVEPOINT | When using the CockroachDB-provided function for client-side transaction retries, commit the transaction's changes once there are no retryable errors. | 
| ROLLBACK | Discard all updates made by the current transaction or, when using the CockroachDB-provided function for client-side transaction retries, rollback to the cockroach_restartsavepoint and retry the transaction. | 
| SAVEPOINT | When using the CockroachDB-provided function for client-side transaction retries, start a retryable transaction. | 
| SET TRANSACTION | Set the priority for the session or for an individual transaction. | 
| SHOW | View the current transaction settings. | 
Access management statements
| Statement | Usage | 
|---|---|
| CREATE ROLE | Create SQL roles, which are groups containing any number of roles and users as members. | 
| CREATE USER | Create SQL users, which lets you control privileges on your databases and tables. | 
| DROP ROLE | Remove one or more SQL roles. | 
| DROP USER | Remove one or more SQL users. | 
| GRANT <privileges> | Grant privileges to users or roles. | 
| GRANT <roles> | Add a role or user as a member to a role. | 
| REVOKE <privileges> | Revoke privileges from users or roles. | 
| REVOKE <roles> | Revoke a role or user's membership to a role. | 
| SHOW GRANTS | View privileges granted to users. | 
| SHOW ROLES | Lists the roles for all databases. | 
| SHOW USERS | Lists the users for all databases. | 
Session management statements
| Statement | Usage | 
|---|---|
| RESET | Reset a session variable to its default value. | 
| SET | Set a current session variable. | 
| SET TRANSACTION | Set the priority for an individual transaction. | 
| SHOW TRACE FOR SESSION | Return details about how CockroachDB executed a statement or series of statements recorded during a session. | 
| SHOW | List the current session or transaction settings. | 
Cluster management statements
| Statement | Usage | 
|---|---|
| RESET CLUSTER SETTING | Reset a cluster setting to its default value. | 
| SET CLUSTER SETTING | Set a cluster-wide setting. | 
| SHOW ALL CLUSTER SETTINGS | List the current cluster-wide settings. | 
| SHOW SESSIONS | List details about currently active sessions. | 
| CANCEL SESSION | New in v2.1: Cancel a long-running session. | 
Query management statements
| Statement | Usage | 
|---|---|
| CANCEL QUERY | Cancel a running SQL query. | 
| SHOW QUERIES | List details about current active SQL queries. | 
Query planning statements
| Statement | Usage | 
|---|---|
| CREATE STATISTICS | New in v2.1: Create table statistics for the cost-based optimizer to use. | 
| EXPLAIN | View debugging and analysis details for a statement that operates over tabular data. | 
| EXPLAIN ANALYZE | New in v2.1: Execute the query and generate a physical query plan with execution statistics. | 
| SHOW STATISTICS | New in v2.1: List table statistics used by the cost-based optimizer. | 
Job management statements
Jobs in CockroachDB represent tasks that might not complete immediately, such as schema changes or enterprise backups or restores.
| Statement | Usage | 
|---|---|
| CANCEL JOB | Cancel a BACKUP,RESTORE,IMPORT, orCHANGEFEEDjob. | 
| PAUSE JOB | Pause a BACKUP,RESTORE,IMPORT, orCHANGEFEEDjob. | 
| RESUME JOB | Resume a paused BACKUP,RESTORE,IMPORT, orCHANGEFEEDjob. | 
| SHOW JOBS | View information on jobs. | 
Backup and restore statements (Enterprise)
The following statements are available only to enterprise users.
For non-enterprise users, see Back up Data and Restore Data.
| Statement | Usage | 
|---|---|
| BACKUP | Create disaster recovery backups of databases and tables. | 
| RESTORE | Restore databases and tables using your backups. | 
| SHOW BACKUP | List the contents of a backup. | 
Changefeed statements (Enterprise)
New in v2.1: Change data capture (CDC) provides row-level change feeds into Apache Kafka for downstream processing.
CDC is an enterprise feature. There will be a core version in a future release.
| Statement | Usage | 
|---|---|
| CREATE CHANGEFEED | Create a new changefeed, which provides row-level change subscriptions. |