A view pode ser definida como uma tabela virtual composta por linhas e colunas de dados vindos de tabelas relacionadas em uma query (um agrupamento de SELECT’s, por exemplo). As linhas e colunas da view são geradas dinamicamente no momento em que é feita uma referência a ela.
Como já dito, a query que determina uma view pode vir de uma ou mais tabelas, ou até mesmo de outras views.
Ao criarmos uma view, podemos filtrar o conteúdo de uma tabela a ser exibida, já que a função da view é exatamente essa: filtrar tabelas, servindo para agrupá-las, protegendo certas colunas e simplificando o código de programação.
É importante salientar que, mesmo após o servidor do SQL Server ser desligado, a view continua “viva” no sistema, assim como as tabelas que criamos normalmente. As views não ocupam espaço no banco de dados.
Vantagens das Views
Temos muitos motivos e vantagens para usarmos views em nossos projetos. A seguir são citados três que podem fazer a diferença:
- Reuso: as views são objetos de caráter permanente. Pensando pelo lado produtivo isso é excelente, já que elas podem ser lidas por vários usuários simultaneamente.
- Segurança: as views permitem que ocultemos determinadas colunas de uma tabela. Para isso, basta criarmos uma view com as colunas que acharmos necessário que sejam exibidas e as disponibilizarmos para o usuário.
- Simplificação do código: as views nos permitem criar um código de programação muito mais limpo, na medida em que podem conter um SELECT complexo. Assim, criar views para os programadores a fim de poupá-los do trabalho de criar SELECT’s é uma forma de aumentar a produtividade da equipe de desenvolvimento.
Criando uma View
Para criar uma view é muito simples: vamos levar em conta a tabela Produtos, conforme a Figura 1 ilustra.
Tendo a estrutura da tabela acima em mente, vamos criar a view, como mostra a Listagem 1.
CREATE VIEW vwProdutos AS
SELECT IdProduto AS Código,
Nome AS Produto,
Fabricante,
Quantidade,
VlUnitario AS [ValorUnitario],
Tipo
FROM Produtos
Para consultarmos os dados na view usamos o comando SELECT, da mesma forma que se estivéssemos fazendo uma consulta em uma tabela comum.
A Listagem 2 exibe a consulta na view, e a Figura 2 nos exibe o resultado desta consulta.
SELECT * FROM vwProdutos
Note que a view tem algumas diferenças em relação à tabela de Produtos, já que na Listagem 1 podemos ver que foram adicionadas alguns alias para as colunas IdProduto, Nome e VlUnitario. Assim podemos formatar a view para que fique melhor até que uma (ou mais) tabela(s).
Com a view podemos incluir dados em uma tabela. Para isso é necessário que haja uma das seguintes situações: as colunas da tabela de origem que não são exibidas na view devem aceitar valores nulos, ser auto incrementais ou ter um valor padrão (que use a constraint default) definido para elas.
Quando realizamos um INSERT, UPDATE ou DELETE dos dados de uma tabela de origem da view, essa ação se reflete automaticamente na view.
Alterando uma View
O comando ALTER VIEW é utilizado para atualizar uma view, após ela já ter sido criada e necessitar de alterações. Seguindo o exemplo da view criada anteriormente, vamos alterá-la para que exiba apenas os produtos cujo valor unitário seja maior que 499,00. Para isso, devemos usar o seguinte código, exibido na Listagem 3.
ALTER VIEW vwProdutos AS
SELECT IdProduto AS Código,
Nome AS Produto,
Fabricante,
Quantidade,
VlUnitario AS [ValorUnitario],
Tipo
FROM Produtos
WHERE VlUnitario > 499.00
Seu resultado pode ser visto na Figura 3.
Excluindo uma View
Para excluirmos uma view é bem simples: é só usar o comando DROP VIEW, como podemos ver a seguir, na Listagem 4.
DROP VIEW vwProdutos
A exclusão de uma view implica na exclusão de todas as permissões que tenham sido dadas sobre ela. Dito isso, devemos usar o comando DROP VIEW apenas quando desejamos de fato retirar a view do sistema. Em caso contrário, podemos usar o comando ALTER VIEW para alterarmos o código da view da forma que acharmos mais conveniente.
Assim finalizo o artigo. Muito obrigado a todos!