CREATE VIEW

Name

CREATE VIEW  --  define uma nova visão

Synopsis

CREATE VIEW visão [ ( nomes_de_colunas ) ] AS SELECT consulta
  

Entradas

visão

O nome da visão a ser criada.

nomes_de_colunas

Uma relação opcional de nomes a serem usados para as colunas da visão. Quando fornecidos, estes nomes substituem os nomes inferidos a partir da consulta SQL.

consulta

Uma consulta SQL que fornece as colunas e as linhas da visão.

Consulte o comando SELECT para obter mais informações sobre os argumentos válidos.

Saídas

CREATE

Mensagem retornada se a visão for criada com sucesso.

ERROR: Relation 'visão' already exists

Este erro ocorre se a visão especificada existir no banco de dados.

NOTICE: Attribute 'nome_da_coluna' has an unknown type

A visão será criada possuindo uma coluna de tipo desconhecido se não for especificado. Por exemplo, o seguinte comando gera esta advertência:

CREATE VIEW vista AS SELECT 'Alô Mundo';
NOTICE:  Attribute '?column?' has an unknown type
        Proceeding with relation creation anyway
	

enquanto o comando abaixo não gera esta advertência:

CREATE VIEW vista AS SELECT text 'Alô Mundo'
	

Descrição

O comando CREATE VIEW define uma visão de uma tabela. A visão não é fisicamente materializada. Em vez disso, uma regra é automaticamente gerada para realizar o retorno dos dados da consulta.

Notas

Atualmente, as visões são apenas para leitura: o sistema não permite inclusão, atualização ou exclusão em uma visão. É possível obter o efeito de uma visão atualizável criando-se regras que troquem as inclusões, ... na visão por ações apropriadas em outras tabelas. Para mais informações consulte o comando CREATE RULE.

Use o comando DROP VIEW para excluir visões.

Utilização

Criar uma visão consistindo de todos os filmes de comédia:

CREATE VIEW comedias AS
    SELECT *
    FROM filmes
    WHERE tipo = 'Comédia';

SELECT * FROM comedias;

 cod   |           titulo          | did | data_prod  |  tipo   | duracao
-------+---------------------------+-----+------------+---------+--------
 UA502 | Bananas                   | 105 | 1971-07-13 | Comédia | 01:22
 C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comédia | 01:36
(2 rows)
   

Compatibilidade

SQL92

O SQL92 especifica algumas funcionalidades adicionais para o comando CREATE VIEW:

CREATE VIEW visão [ coluna [, ...] ]
    AS SELECT expressão [ AS nome_da_coluna ] [, ...]
    FROM tabela [ WHERE condição ]
    [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
   

As cláusulas opcionais para o comando SQL92 completo são:

CHECK OPTION

Esta opção está relacionada com as visões atualizáveis. Todos os comandos INSERT e UPDATE em uma visão serão verificados para garantir que os dados satisfazem as condições que definem a visão. Se não satisfizer, a atualização será rejeitada.

LOCAL

Verifica a integridade nesta visão.

CASCADE

Verifica a integridade nesta visão e em todas as visões dependentes. CASCADE é assumido se nem CASCADE nem LOCAL forem especificados.