Create and manage views
This article shows how to create views in Unity Catalog. See What is a view?.
Required permissions
To create a view:
- You must have the
USE CATALOGpermission on the parent catalog and theUSE SCHEMAandCREATE TABLEpermissions on the parent schema. A metastore admin or the catalog owner can grant you all of these privileges. A schema owner or user with theMANAGEprivilege can grant youUSE SCHEMAandCREATE TABLEprivileges on the schema. - You must be able to read the tables and views referenced in the view (
SELECTon the table or view, as well asUSE CATALOGon the catalog andUSE SCHEMAon the schema). - If a view references tables in the workspace-local Hive metastore, the view can be accessed only from the workspace that contains the workspace-local tables. For this reason, Databricks recommends creating views only from tables or views that are in the Unity Catalog metastore.
- You cannot create a view that references a view that has been shared with you using Delta Sharing. See What is Delta Sharing?.
To read a view, the permissions required depend on the compute type, Databricks Runtime version, and access mode. See Requirements for querying views.
Create a view
To create a view, run the following SQL command. Items in brackets are optional. Replace the placeholder values:
<catalog-name>: The name of the catalog.<schema-name>: The name of the schema.<view-name>: A name for the view.<query>: The query, columns, and tables and views used to compose the view.
SQL
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
For example, to create a view named sales_redacted from columns in the sales_raw table:
SQL
CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
user_id,
email,
country,
product,
total
FROM sales_metastore.sales.sales_raw;
You can also create a view by using the Databricks Terraform provider and databricks_table. You can retrieve a list of view full names by using databricks_views.
Drop a view
You must be the view's owner or have the MANAGE privilege on the view to drop a view. To drop a view, run the following SQL command:
SQL
DROP VIEW IF EXISTS catalog_name.schema_name.view_name;