You are on page 1of 6

Views

Hudyson Santos Barbosa

Views
Uma viso [view] uma forma alternativa de olhar os dados contidos em
uma ou mais tabelas. Para definir uma viso, usa-se um comando
SELECT que faz uma consulta sobre as tabelas. A viso aparece depois
como se fosse uma tabela.
Vises tm as seguintes vantagens:
* Uma viso pode restringir quais as colunas da tabela que podem ser
acessadas (para leitura ou para modificao);
* Uma consulta SELECT que usada muito frequentemente pode ser
criada como viso. Com isso, a cada vez que ela necessria, basta
selecionar dados da viso;
* Vises podem conter valores calculados ou valores de resumo, o que
simplifica a operao.
Uma viso pode ser usada para exportar dados para outras aplicaes.

Views
As views tambm so uma importante ferramenta para simplificar suas
instrues SELECT: ao invs de vrias subquerys, podemos encapsular
toda um lgica dentro de uma view, tornando assim o cdigo final da
instruo bem mais legvel.
Por ltimo, as views podem ser utilizadas para evitar o acesso direto
tabela. Por exemplo: o usurio X no pode ver o campo SALARIO da
tabela FUNCIONARIO. Como fazer isto? Crie uma view sem incluir este
campo e d permisso de consulta view ao usurio X sem liberar o
acesso fsico tabela, ocultando assim o campo SALARIO.

Views
As views nada mais so do que instrues SELECT j pr-definidas e
armazenadas no banco. Este conceito pode parecer simples, e , mas
pode-se resolver muitos problemas com as views.
Para criar uma view, utilizamos o comando CREATE VIEW. Sua sintaxe:
CREATE VIEW <view_name> AS
<instruo_SELECT>
Exemplo:
CREATE VIEW V_TAB1
AS
SELECT COD , NOME FROM TABELA1
SELECT COD
FROM V_TAB1
WHERE NOME = Mauro

Views
Detalhe: no exemplo acima s poderamos utilizar os dois campos da
view, COD e NOME. Mesmo que a tabela base (TABELA1) possua mais
campos no poderamos nos referir a eles, pois eles no constam na
definio da view.
A algum poderia pensar: Fcil, coloco um SELECT * FROM TABELA1
na definio da view. Esta prtica, alm de no ser recomendada por
motivos de performance, pode gerar um problema: vamos supor que
futuramente algum inclua um campo na tabela base (TABELA1). Mesmo
com o * na definio da view o novo campo NO retornado.
necessrio apagar a view e cri-la de novo. importante tambm
lembrar que todos os campos (calculados ou no) referenciados na view
devem possuir um nome, que deve ser nico na definio da view.

Views
Outro ponto importante sobre as views: no podemos utilizar a clusula
ORDER BY na definio da view. Somente quando se utiliza TOP para
limitar os registros, pode-se ento utilizar a clusula.
-- Isto uma definio vlida de uma view
CREATE VIEW V_TAB1
AS
SELECT TOP 100 COD , NOME
FROM TABELA1
ORDER BY NOME

You might also like