Como criar visualizações para recuperar e manipular dados sql

Um dos recursos mais poderosos do SQL é a sua capacidade de exibir visualizações de dados que são estruturados de forma diferente de como as tabelas de banco de dados armazenar os dados. A estrutura de um banco de dados que é projetado de acordo com princípios sólidos - incluindo a normalização adequada - maximiza a integridade dos dados.

Essa estrutura, no entanto, muitas vezes não é a melhor maneira de olhar para os dados. Várias aplicações podem utilizar os mesmos dados, mas cada aplicação pode ter uma ênfase diferente. As tabelas que você usa como fontes de colunas e linhas em uma visão são o tabelas base.

UMA SELECIONAR declaração sempre retorna um resultado na forma de uma tabela virtual. UMA Visão é um tipo especial de tabela virtual. Você pode distinguir uma visão de outras mesas virtuais porque os metadados do banco de dados contém a definição de um ponto de vista. Esta distinção dá uma visão um grau de persistência que outras mesas virtuais não possuem.

Você pode manipular uma vista apenas como você pode manipular uma tabela real. A diferença é que os dados de um ponto de vista não tem uma existência independente. A visão deriva seus dados a partir da tabela ou tabelas a partir do qual você desenhar colunas da visão. Cada aplicação pode ter suas próprias vistas únicas sobre os mesmos dados.

Suponha que um banco de dados contém cinco tabelas: Cliente, TESTES, empregado, ordens, e resultados. Suponha que o gerente de marketing nacional quer ver a partir do qual afirma pedidos da empresa estão vindo. Alguma desta informação encontra-se no cliente mesa- algumas mentiras na tabela Pedidos.

Video: Conexão C# Visual Studio com SQL Server

Suponha que o oficial de controle de qualidade quer comparar a data do pedido de um teste para a data em que o resultado do teste final veio. Esta comparação requer alguns dados da tabela de pedidos e alguns da tabela de resultados. Para satisfazer as necessidades, tais como estes, você pode criar visualizações que lhe dão exatamente os dados que deseja em cada caso.

a partir de tabelas

Para o gerente de marketing, você pode criar este ponto de vista.

A instrução a seguir cria a visão do gerente de marketing:

CREATE VIEW ORDERS_BY_STATE (ClientName, Estado, OrderNumber) AS SELECT CLIENT.ClientName, Estado, OrderNumberFROM CLIENT, ORDERSWHERE CLIENT.ClientName = ORDERS.ClientName -

A nova visão tem três colunas: Nome do cliente, Estado, e Número do pedido. Nome do cliente aparece tanto o cliente e ordens de mesas e serve como elo de ligação entre as duas tabelas. A nova visão chama Estado informações da tabela CLIENT e assume a Número do pedido da tabela de pedidos. No exemplo anterior, você declarar os nomes das colunas explicitamente na nova vista.

Note-se que o Nome do cliente é prefixado com a tabela que contém, mas não é feito para Estado e Número do pedido. Isso é porque Estado aparece apenas na tabela CLIENTE e Número do pedido aparece apenas na tabela de ordens, então não há nenhuma ambigüidade. Contudo, Nome do cliente aparece no cliente e ordens, de modo que o identificador adicional é necessária.



Você não precisa esta declaração se os nomes são os mesmos que os nomes das colunas correspondentes nas tabelas de origem. O exemplo mostra uma semelhante CREATE VIEW declaração, exceto que os nomes de vista de coluna estão implícitas em vez de explicitamente.

Com uma condição de seleção

O oficial de controle de qualidade exige uma visão diferente do que o gerente de marketing usa.

Video: Banco de Dados - Aula 8 - SQL - DML - Exemplo de criação de scripts de manipulação

Aqui está o código que cria o ponto de vista:

CREATE VIEW REPORTING_LAGAS SELECIONAR ORDERS.OrderNumber, ordens OrderDate, DateReportedFROM, RESULTSWHERE ORDERS.OrderNumber = RESULTS.OrderNumberAND RESULTS.PreliminaryFinal = `F` -

Esta visão contém informações fim-data a partir da informação da tabela ORDENS e última-report-data a partir da tabela de resultados. Apenas as linhas que têm um ‘F’ no PreliminaryFinal coluna da tabela de resultados aparecem na RELATÓRIOS LAG Visão. Note também que a lista de colunas na vista ORDERS_BY_STATE é opcional. o REPORTING_LAG vista funciona bem sem essa lista.

Com um atributo modificado

o SELECIONAR cláusulas conter apenas nomes de coluna. Você pode incluir expressões na SELECIONAR cláusula também. Suponha que o proprietário do VetLab está tendo um aniversário e quer dar a todos os seus clientes um desconto de 10 por cento para comemorar. Ele pode criar uma visão baseada na tabela Encomendas e tabela de testes. Ele pode construir esta tabela como mostrado no exemplo de código a seguir:

CREATE VIEW ANIVERSÁRIO (ClientName, Teste, OrderDate, BirthdayCharge) AS SELECT ClientName, TestOrdered, OrderDate, StandardCharge * Pedidos .9FROM, TESTSWHERE TestOrdered = TestName -

Note-se que a segunda coluna no ANIVERSÁRIO Visão - Teste - corresponde à TestOrdered coluna da tabela de encomendas, que também corresponde à TestName coluna na tabela de testes.

Você pode construir uma visão baseada em várias tabelas, como mostrado nos exemplos anteriores, ou você pode construir uma visão baseada em uma única tabela. Se você não precisa de algumas das colunas ou linhas, criar uma visão para remover esses elementos e depois lidar com a visão ao invés da tabela original. Esta abordagem assegura que os usuários vêem apenas as partes da tabela que são relevantes.

Outra razão para a criação de um ponto de vista é para fornecer segurança para suas tabelas subjacentes. Você pode querer fazer algumas colunas nas tabelas disponíveis para consulta ao esconder outros. Você pode criar uma visão que inclui apenas as colunas que você deseja tornar disponíveis e, em seguida, conceder um amplo acesso a essa visão enquanto restringe o acesso às tabelas do qual você desenhar a vista.


Publicações relacionadas