views para sql server

17
Claudio Stein Junior

Upload: claudio-stein-junior

Post on 12-Jul-2016

4 views

Category:

Documents


0 download

DESCRIPTION

Views Para SQL Server

TRANSCRIPT

Page 1: Views Para SQL Server

Claudio Stein Junior

Page 2: Views Para SQL Server

Views são instruções SELECT já pré-definidas e armazenadas no banco de dados

Page 3: Views Para SQL Server

CREATE VIEW <view_name> AS<instrução_SELECT>

Page 4: Views Para SQL Server

CREATE VIEW V_TAB1ASSELECT COD , NOME FROM TABELA1

Page 5: Views Para SQL Server

SELECT CODFROM V_TAB1WHERE NOME = ‘Claudio’

Page 6: Views Para SQL Server

Detalhe: no exemplo acima só poderíamos utilizar os dois campos da view, COD e NOME. Mesmo que a tabela base (TABELA1) possua mais campos não poderíamos nos referir a eles, pois eles não constam na definição da view.

Page 7: Views Para SQL Server

SELECT * FROM TABELA1

Page 8: Views Para SQL Server

Esta prática, além de não ser recomendada por motivos de performance, pode gerar um problema: vamos supor que futuramente alguém inclua um campo na tabela base (TABELA1). Mesmo com o * na definição da view o novo campo NÃO é retornado. É necessário apagar a view e criá-la de novo. É importante também lembrar que todos os campos (calculados ou não) referenciados na view devem possuir um nome, que deve ser único na definição da view.

Page 9: Views Para SQL Server

Outro ponto importante sobre as views: não podemos utilizar a cláusula ORDER BY na definição da view. Como uma exceção: quando se utiliza TOP para limitar os registros:

Page 10: Views Para SQL Server

CREATE VIEW V_TAB1ASSELECT TOP 100 COD , NOMEFROM TABELA1ORDER BY NOME

Page 11: Views Para SQL Server

Também não podemos utilizar as cláusulas COMPUTE, COMPUTE BY e INTO dentro de uma view.

Page 12: Views Para SQL Server

Supondo que a TABELA1, utilizada na criação da view V_TAB1, possua somente os dois campos utilizados na view , COD e NOME. Podemos fazer um instrução INSERT normalmente, como se fosse somente uma tabela:

INSERT INTO V_TAB1 VALUES(1,’VANESSA’)

Page 13: Views Para SQL Server

Quando utilizarem esta prática, tomem cuidado com campos calculados e expressões de agregação feitos na definição da view.

Page 14: Views Para SQL Server

As views também podem se referenciar a outras tabelas de outros banco de dados de outros servidores SQL Server, ou mesmo de um arquivo do Access ou até uma tabela do Oracle. A estas views damos o nome de particioned views e possuem algumas características especiais

Page 15: Views Para SQL Server

A partir do SQL Server 2000 também podemos criar um índice para a view, chamada de indexed view, que melhoram significativamente a performance

Page 16: Views Para SQL Server

As views também são uma importante ferramenta para simplificar suas instruções SELECT: ao invés de várias subquery’s, podemos encapsular toda um lógica dentro de uma view, tornando assim o código final da instrução bem mais legível.

Page 17: Views Para SQL Server

Por último, as views podem ser utilizadas para evitar o acesso direto à tabela. Por exemplo: o usuário X não pode ver o campo SALARIO da tabela FUNCIONARIO. Como fazer isto? Crie uma view sem incluir este campo e dê permissão de consulta à view ao usuário X sem liberar o acesso físico à tabela, ocultando assim o campo SALARIO.