Uma view é uma tabela virtual criada a partir de tabelas existentes na camada de tabela. Ela permite manter a lógica de consulta (instruções SQL) sem a necessidade de tabelas adicionais que consomem espaço de armazenamento. Este tópico descreve as instruções para gerenciar views e inclui exemplos de uso.
Operações
Operation | Description | Required permission | Platform |
Cria uma view a partir de uma consulta ou atualiza uma view existente | CreateTable | É possível executar os comandos deste tópico em: | |
Altera o nome de uma view existente | Alter | ||
Altera o proprietário de uma view | Alter | ||
Lista todas as views padrão em um projeto | List | ||
Definição e metadados da view | Describe | ||
Remove uma view | Drop |
Criar ou atualizar uma view
Cria uma view a partir de uma instrução SELECT ou atualiza uma view existente.
-
Limites
Uma view pode referenciar outras views, mas não crie referências circulares nem referencie a própria view.
Não é possível gravar dados em uma view. Operações como
INSERT INTOouINSERT OVERWRITEnão são permitidas.
-
Sintaxe
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] <view_name> [(<col_name> [comment <col_comment>], ...)] [comment <view_comment>] AS <select_statement>; -
Parâmetros
Parameter
Required
Description
OR REPLACE
No
Inclua para atualizar uma view existente.
IF NOT EXISTS
No
Se omitido e a view já existir,
CREATE VIEWfalhará. UseCREATE OR REPLACE VIEWpara recriar; as permissões são preservadas.view_name
Yes
Nome da view a ser criada ou atualizada.
col_name
Yes
Nomes das colunas da view.
col_comment
No
Comentário para uma coluna.
view_comment
No
Comentário para a view.
select_statement
Yes
A instrução SELECT que define a view. É necessária permissão de leitura nas tabelas referenciadas. Uma view deve conter exatamente uma instrução
SELECTválida.NotaApós criar ou atualizar uma view, ela poderá ficar inacessível se a tabela referenciada for modificada. Por exemplo, se a tabela referenciada for excluída. Mantenha os mapeamentos entre as tabelas referenciadas e as views.
-
Exemplos
-
Exemplo 1: Criar a view sale_detail_view com base na tabela sale_detail.
CREATE VIEW IF NOT EXISTS sale_detail_view (store_name, customer_id, price, sale_date, region) comment 'a view for table sale_detail' AS SELECT * FROM sale_detail; -
Exemplo 2: Atualizar a view sale_detail_view com base na tabela sale_detail.
CREATE OR REPLACE VIEW IF NOT EXISTS sale_detail_view (store_name, customer_id, price) comment 'a view for table sale_detail' AS SELECT shop_name, customer_id, total_price FROM sale_detail;
-
Renomear uma view
-
Sintaxe
ALTER VIEW <view_name> RENAME TO <new_view_name>; -
Parâmetros
Parameter
Required
Description
view_name
Yes
Nome atual da view.
new_view_name
Yes
Novo nome. O sistema retornará um erro se já existir uma view com este nome.
-
Exemplo
--Rename the view sale_detail_view to market. ALTER VIEW sale_detail_view RENAME TO market;
Alterar o proprietário de uma view
-
Sintaxe
ALTER VIEW <view_name> CHANGEOWNER TO <new_owner>; -
Parâmetros
Parameter
Required
Description
view_name
Yes
Nome da view.
new_owner
Yes
Conta do novo proprietário.
-
Exemplo
--Change the owner of the sale_detail_view view to ALIYUN$xxx@aliyun.com. ALTER VIEW sale_detail_view CHANGEOWNER TO 'ALIYUN$xxx@aliyun.com';
Listar todas as views padrão em um projeto
O comando SHOW VIEWS; requer o cliente MaxCompute (odpscmd) V0.43.0 ou posterior.
-
Sintaxe
Para listar apenas as views em um projeto:
SHOW VIEWS;. Também é possível usarSHOW TABLES;para listar todas as tabelas e views em um projeto. Para mais informações, consulte Listar tabelas e views do projeto.--List all standard views in a project. SHOW VIEWS; --List views in a project whose names match a pattern. SHOW VIEWS LIKE '<chart>'; -
Exemplo
SHOW VIEWS LIKE 'sale*';Resultado retornado:
ALIYUN$account_name:sale_detail_view ...... --ALIYUN is a system prompt, which indicates that the table is created by using an Alibaba Cloud account. If you are a RAM user, the system prompt is RAM.
Consultar uma view
Exibe a definição da view (ViewText), hora de criação, projeto e outros metadados.
-
Sintaxe
DESC <view_name>; -
Parâmetros
view_name: Obrigatório. Nome da view a ser descrita.
-
Exemplo
DESC sale_detail_view;Resultado retornado:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$san****@aliyunid.com | | Project: aning**** | | Schema: default | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2025-03-19 13:22:48 | | LastDDLTime: 2025-03-19 13:22:48 | | LastModifiedTime: 2025-03-19 13:22:48 | +------------------------------------------------------------------------------------+ | VirtualView : YES | | ViewText: SELECT shop_name, customer_id, total_price FROM sale_detail | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | shop_name | string | | | | customer_id | string | | | | total_price | double | | | +------------------------------------------------------------------------------------+
Excluir uma view
Remove uma view existente.
-
Sintaxe
DROP VIEW [IF EXISTS] <view_name>; -
Parâmetros
Parameter
Required
Description
IF EXISTS
No
Se a view não existir e IF EXISTS não for especificado, o sistema retornará um erro.
view_name
Yes
Nome da view a ser excluída.
-
Exemplo
--Drop the sale_detail_view view. DROP VIEW IF EXISTS sale_detail_view;