Oi gente, estamos de volta commais um artigo, o quinto de nossa serie que tem objetivo de mostrar algunspontos da linguagem SQL, em nosso ultimo mostramos um dos comandos bastanteutilizados na linguagem SQL o SELECT. Hoje vamos falar um pouco sobre a VIEW, oque e como cria-la e utiliza-la. Boa leitura.Em determinadas situacoesprecisamos consultar dados de uma ou mais tabelas, dependendo da situacao essaconsulta podera ficar bem extensa, e se essa consulta precisar ser utilizada emvarios locais diferentes? Ja imaginou o tamanho que ficaria seu codigo, e otanto de repeticoes que teria? E se fosse preciso mudar algum ponto dessaconsulta? Teriamos que sair mudando em todos os locais que ela estivesse. Naoseria melhor deixar seu codigo mais limpo? E para esse e outros momentos queutilizamos as VIEWS ou Visoes do SQL. A utilizacao da VIEW nos permite alterarnela somente o que precisamos realizar uma recompilada e pronto, todos osobjetos que utilizem a VIEW ja serao carregados com as devidas alteracoesfeitas, bem mais simples e profissional.Tenho o costume tambem e ja viessa pratica por onde passei da utilizacao de visoes como fonte de retorno pararelatorios, por ser bem mais pratico, questoes relacionadas a seguranca, porquea visao ja pode ser montada com a nomenclatura correta dos campos e com somenteos campos que serao utilizados, e caso seja preciso alguma alteracao nao hanecessidade de modificar o relatorio, somente a visao.O QUE E UMA VIEWNo MSDN a VIEWtem por definicao ser uma tabela virtual cujo conteudo e definido por umaconsulta. E e exatamente isso, a VIEW lhe retorna o resultado de uma consulta,complexa ou nao, e uma maneira tambem de oferecer seguranca ao seu BD, naopermitindo que os usuarios acessem diretamente as tabelas. E como ela retornatambem um conjunto de informacoes, pode inclusive ser usada em outras consultas,VIEW, PROCEDURES, como uma tabela em um SELECT, ser relacionada com outrasviews ou tabelas, etc.COMO CRIAR UMA VIEWA sintaxe de criacao de uma VIEWe bem simples, do mesmo jeito a sintaxe de alteracao.CriacaoCREATE VIEW <Nome_View> AS<Consulta>AlteracaoALTER VIEW <Nome_View> AS<Consulta>Bem simples, como exemplo, vamoscriar a VIEW VPRODCATEG que nos dara uma relacao de produtos e suas categorias.CREATE VIEW VPRODCATEGASSELECT P.CD_REFERENCIA AS CODIGO_REFERENCIA, P.NR_SERIE AS NUMERO_SERIE, DESC_PRODUTOAS PRODUTO, C.DESC_CATEGORIA AS CATEGORIAFROM TBPRODUTO P INNER JOIN TBSUBCATEGORIA S ON S.CD_SUB = P.CD_SUB INNER JOIN TBCATEGORIA C ON C.CD_CATEGORIA = S.CD_CATEGORIAAgora com a VIEW criada vamosconsulta-la e ver o retorno. SELECT * FROM VPRODCATEGCODIGO_REFERENCIA NUMERO_SERIE PRODUTO CATEGORIA----------------- -----------------------------------------------------------------------------------------------1001 NS110011 Whisky 08Anos Bebidas1002 NS210021 Whisky 12Anos Bebidas1003 NS310031 Vinho Bebidas2001 NS420012 Arroz Branco Cereais2002 NS520022 Feijao Carioca Cereais3001 NS630013 Leite LongaVida Cereais3002 NS730023 Leite Longa VidaDesnatado Cereais4010 NS840104 MacarraoParafuso Enlatados4020 NS940204 MacarraoTalharim Enlatados6100 NS1061005 Pessego emCalda Lacticinios6200 NS1162005 Ervilha Enlatados6300 NS1263005 Milho Verde Enlatados(12 linha(s) afetadas)Temos uma visao de varias tabelasde forma bem organizada fazendo uma unica consulta. Agora e se esquecemos docampo de status do produto? Nao tem problema nenhum, e so alterar a VIEW eincluir o novo campo. Veja abaixo a alteracao e em seguida a mesma consulta da VIEWutilizada acima com o retorno ja modificado.ALTER VIEW VPRODCATEGASSELECT P.CD_REFERENCIA AS CODIGO_REFERENCIA, P.NR_SERIE AS NUMERO_SERIE, DESC_PRODUTOAS PRODUTO, C.DESC_CATEGORIA AS CATEGORIA, P.ST_PRODUTOFROM TBPRODUTO P