CREATE VIEW

Nome

CREATE VIEW -- cria uma visão

Sinopse

CREATE [ OR REPLACE ] VIEW nome [ ( nome_da_coluna [, ...] ) ] AS consulta

Descrição

O comando CREATE VIEW cria uma visão. A visão não é materializada fisicamente. Em vez disso, a consulta é executada toda vez que a visão é referenciada em uma consulta. [1] [2]

O comando CREATE OR REPLACE VIEW é semelhante, mas se já existir uma visão com o mesmo nome então esta é substituída. Uma visão somente pode ser substituída por uma nova consulta que produza um conjunto idêntico de colunas (ou seja, colunas com mesmos nomes e tipos de dado).

Se for fornecido o nome do esquema (por exemplo, CREATE VIEW meu_esquema.minha_visao ...) então a visão será criada no esquema especificado, senão será criada no esquema corrente. O nome da visão deve ser distinto do nome de qualquer outra visão, tabela, seqüência ou índice no mesmo esquema.

Parâmetros

nome
O nome (opcionalmente qualificado pelo esquema) da visão a ser criada.
nome_da_coluna
Uma lista opcional de nomes a serem usados para as colunas da visão. Se não for fornecida, os nomes das colunas são determinados a partir da consulta.
consulta
Uma consulta (ou seja, um comando SELECT) que gera as colunas e linhas da visão. Consulte o comando SELECT para obter mais informações sobre as consultas válidas.

Observações

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

Deve ser utilizado o comando DROP VIEW para remover uma visão.

Tome cuidado para que os nomes e os tipos das colunas da visão sejam atribuídos da maneira desejada. Por exemplo,

CREATE VIEW vista AS SELECT 'Hello World';

é ruim por dois motivos: o nome padrão da coluna é ?column?, e o tipo de dado padrão da coluna é unknown. Se for desejado um literal cadeia de caracteres no resultado da visão deve ser utilizado algo como

CREATE VIEW vista AS SELECT text 'Hello World' AS hello;

O acesso às tabelas referenciadas pela visão é determinado pelas permissões do dono da visão. Entretanto, as funções chamadas pela visão são tratadas da mesma maneira como se tivessem sido chamadas diretamente pela consulta que utiliza a visão. Portanto, o usuário da visão deve possuir permissão para chamar todas as funções utilizadas pela visão.

Exemplos

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

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

Compatibilidade

O padrão SQL especifica algumas funcionalidades adicionais para o comando CREATE VIEW:

CREATE VIEW nome [ ( coluna [, ...] ) ]
    AS consulta
    [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]

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

CHECK OPTION
Esta opção está associada às visões atualizáveis. Todos os comandos INSERT e UPDATE na visão são verificados para garantir que os dados satisfazem às condições que definem a visão (ou seja, os novos dados devem ser visíveis através da visão). Se as condições não forem satisfeitas, 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.

O comando CREATE OR REPLACE VIEW é uma extensão do PostgreSQL à linguagem.

Veja também

DROP VIEW

Notas

[1]

A visão (estritamente, a definição da visão) é uma consulta nomeada, que pode para muitas finalidades ser utilizada da mesma maneira que uma tabela base. Seu valor é o resultado da avaliação da consulta. (ISO-ANSI Working Draft) Framework (SQL/Framework), August 2003, ISO/IEC JTC 1/SC 32, 25-jul-2003, ISO/IEC 9075-2:2003 (E) (N. do T.)

[2]

IBM — No Centro de Controle do DB2 8.1 view é traduzido como visualização. (N. do T.)

SourceForge.net Logo