> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firebolt.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Statements

> BigQuery DDL, DML, transaction (TCL), and DCL statements supported in BigQuery compatibility mode.

<span className="feature-tag">Preview</span>

BigQuery [data definition](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language) (DDL), [data manipulation](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language) (DML), [transaction](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/transactions) (TCL), and [data control](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language) (DCL) statements in [BigQuery compatibility mode](/reference-sql/bigquery/overview).

## Data definition language

| Statement | Support | Notes |
| :- | :- | :- |
| [`CREATE TABLE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) | Supported | Column-definition and `AS SELECT` forms. `CREATE OR REPLACE` is supported. Requires either a column list or an `AS SELECT`. A column list must match the query's output width. With `SELECT *` the width is not known when the statement is translated, so the list is not applied and the query's own column names are kept. |
| [`CREATE VIEW`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_view_statement) | Supported | `AS SELECT` form. |
| [`CREATE SCHEMA`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_schema_statement) | Supported | `IF NOT EXISTS` supported. `AUTHORIZATION` is not supported; `OPTIONS(...)` and `DEFAULT COLLATE` are ignored. |
| [`DROP TABLE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_statement), [`DROP VIEW`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_view_statement), [`DROP SCHEMA`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#drop_schema_statement) | Supported | `IF EXISTS`, `CASCADE`/`RESTRICT`, and multiple objects in one statement. |
| [`CREATE VECTOR INDEX`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_vector_index_statement) | With limitations | Requires a `dimension` option (Firebolt needs an explicit vector dimension that BigQuery infers). |
| [`ALTER TABLE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_set_options_statement) | With limitations | One operation per statement. Dropping several columns in one statement is not supported. |
| [`CREATE MATERIALIZED VIEW`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement), `DROP MATERIALIZED VIEW` | Not supported | |
| [`CREATE EXTERNAL TABLE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_external_table_statement) | Not supported | |
| `CREATE TABLE LIKE`, `CREATE TABLE COPY`, `CREATE TABLE CLONE`, `CREATE SNAPSHOT TABLE` | Not supported | |
| [`CREATE FUNCTION`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_function_statement), `CREATE TABLE FUNCTION`, `CREATE PROCEDURE`, `DROP FUNCTION` | Not supported | |
| `CREATE ROW ACCESS POLICY`, `CREATE SEARCH INDEX` | Not supported | |
| `ALTER SCHEMA`, `ALTER VIEW`, `ALTER MATERIALIZED VIEW`, `ALTER ORGANIZATION` | Not supported | |

## Data manipulation language

| Statement | Support | Notes |
| :- | :- | :- |
| [`INSERT`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language#insert_statement) | Supported | `INSERT ... VALUES` and `INSERT ... SELECT`. The target must be a plain table name. |
| [`UPDATE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language#update_statement) | Supported | With a `WHERE` clause. |
| [`DELETE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language#delete_statement) | Supported | With a `WHERE` clause. |
| [`TRUNCATE TABLE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language#truncate_table_statement) | Supported | Removes all rows (executed as an unconditional delete). Multiple targets in one statement are supported. |
| [`MERGE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language#merge_statement) | Supported | `WHEN MATCHED THEN UPDATE`/`DELETE` and `WHEN NOT MATCHED THEN INSERT`. |

## Transaction control

BigQuery [transactions](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/transactions) run a group of statements atomically.

| Statement | Support | Notes |
| :- | :- | :- |
| [`BEGIN TRANSACTION`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#begin_transaction) | Supported | `START TRANSACTION` is an accepted synonym. |
| [`COMMIT TRANSACTION`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#commit_transaction) | Supported | `COMMIT` is accepted. |
| [`ROLLBACK TRANSACTION`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#rollback_transaction) | Supported | `ROLLBACK` is accepted. |

## Data control language

BigQuery [data control language](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language) manages access to resources.

| Statement | Support | Notes |
| :- | :- | :- |
| [`GRANT`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language#grant_statement) | Not supported | Use native Firebolt SQL for [access control](/reference-sql/commands/access-control/create-role). |
| [`REVOKE`](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-control-language#revoke_statement) | Not supported | Use native Firebolt SQL for access control. |

## Limitations

* Column types in a `CREATE TABLE ... AS SELECT` column list are read as names only and do not re-type the selected columns.
* `INSERT`, `UPDATE`, and `DELETE` do not support a `RETURNING` clause.
* Procedural statements (`CALL`, `EXECUTE IMMEDIATE`, scripting) are not supported in this mode.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.