Como criar uma exibição de tabela com o sql

Às vezes, você deseja recuperar informações específicas da tabela de clientes em SQL. Você não quer olhar para tudo - apenas colunas e linhas específicas. O que você precisa é de um ponto de vista.

UMA Visão é uma tabela virtual. Na maioria das implementações, uma visão não tem existência física independente. A definição da vista só existe nos metadados do banco de dados, mas os dados vem da tabela ou tabelas a partir do qual derivam a vista. Os dados do ponto de vista não está fisicamente duplicado.

vista de mesa única

Se as informações que deseja existe em uma única tabela, você pode criar uma exibição de mesa única dos dados. Por exemplo, suponha que você queira olhar para os nomes e números de telefone de todos os clientes que vivem no estado de New Hampshire. Você pode criar uma exibição da tabela de clientes que contém apenas os dados que deseja. A seguinte instrução SQL cria este ponto de vista:

CREATE VIEW NH_CUST ASSeleccione CUSTOMER.FirstName, CUSTOMER.LastName, CUSTOMER.PhoneFROM CUSTOMERWHERE CUSTOMER.State = `NH` -

Você pode realizar a mesma tarefa com menos digitação se sua implementação SQL assume que todas as referências da tabela são os mesmos que os do A PARTIR DE cláusula. Se o seu sistema faz essa suposição padrão razoável, você pode reduzir a declaração com as seguintes linhas:

Video: MySQL 6 - Criando tabelas

CREATE VIEW NH_CUST ASSeleccione nome, sobrenome, PhoneFROM CUSTOMERWHERE STATE = `NH`-

Embora a segunda versão é mais fácil de ler e escrever, é mais vulnerável ao rompimento de ALTERAR A TABELA comandos. Essas perturbações não é um problema para este caso simples, que não tem JUNTE-SE, mas pontos de vista com JUNTE-SEs são mais robustos quando eles usam nomes totalmente qualificados.

vista multitable

Mais frequentemente do que não, você precisa puxar dados de duas ou mais tabelas para responder a sua pergunta. Suponha, por exemplo, que você trabalha para uma loja de artigos esportivos, e que pretende enviar um mailing promocional para todos os clientes que compraram o equipamento de esqui desde que a loja abriu no ano passado.

Você precisa de informações da tabela de clientes, a tabela de produtos, tabela de faturas, ea tabela de INVOICE_LINE. Você pode criar uma visão multitable que mostra os dados que você precisa. Cada vez que você usar a visão, que reflete todas as mudanças que ocorreram nas tabelas subjacentes desde a última vez utilizado a vista.

O banco de dados para esta loja de artigos esportivos contém quatro tabelas: clientes, produtos, faturas e INVOICE_LINE.

MesaColunaTipo de dadosLimitação
CLIENTEIdentificação do ClienteINTEIRONÃO NULO
Primeiro nomeCHAR (15)
Último nomeCHAR (20)NÃO NULO
RuaCHAR (25)
CidadeCHAR (20)
EstadoCHAR (2)
CEPCHAR (10)
telefoneCHAR (13)
PRODUTOSID do produtoINTEIRONÃO NULO
NomeCHAR (25)
DescriçãoCHAR (30)
CategoriaCHAR (15)
VendorIDINTEIRO
Nome do vendedorCHAR (30)
FATURAInvoiceNumberINTEIRONÃO NULO
Identificação do ClienteINTEIRO
Data da faturaENCONTRO
TotalSaleNUMÉRICO (9,2)
TotalRemittedNUMÉRICO (9,2)
Forma de pagamentoCHAR (10)
INVOICE_LINELineNumberINTEIRONÃO NULO
InvoiceNumberINTEIRONÃO NULO
ID do produtoINTEIRONÃO NULO
QuantidadeINTEIRO
Preço de vendaNUMÉRICO (9,2)

Observe que algumas das colunas contêm a restrição NÃO NULO. Estas colunas são ou as chaves primárias das respectivas tabelas ou colunas que você decidir devo conter um valor. chave primária de uma tabela deve identificar exclusivamente cada linha. Para isso, a chave primária deve conter um valor não nulo em cada linha.

As tabelas relacionam entre si através das colunas que eles têm em comum. A lista a seguir descreve essas relações:

  • A tabela CLIENTE tem uma um-para-muitos a tabela de faturas. Um cliente pode fazer várias compras, gerando várias faturas. Cada factura, no entanto, lida com um, e apenas um, o cliente.



  • A tabela FACTURA tem uma relação um-para-muitos com a tabela de INVOICE_LINE. Uma factura pode ter várias linhas, mas cada linha aparece em um, e apenas um, factura.

  • A tabela produto também tem uma relação de um-para-muitos a tabela de INVOICE_LINE. Um produto pode aparecer em mais de uma linha em um ou mais faturas. Cada linha, no entanto, lida com um, e apenas um, produto.

Os links da tabela cliente à tabela fatura na comum Identificação do Cliente coluna. Os links da tabela fatura para a mesa de INVOICE_LINE pelo comum InvoiceNumber coluna. Os links tabela de produtos para a tabela de INVOICE_LINE pelo comum ID do produto coluna. Estas ligações são o que torna este banco de dados de um relacional base de dados.

Para acessar as informações sobre os clientes que compraram o equipamento de esqui, você precisa Primeiro nome, Último nome, Rua, Cidade, Estado, e CEP do mesa- CLIENTE Categoria do mesa- PRODUTOS InvoiceNumber da mesa- factura e LineNumber da tabela INVOICE_LINE. Você pode criar a visão que você quer em estágios usando as seguintes declarações:

CREATE VIEW SKI_CUST1 ASSeleccione nome, sobrenome, rua, cidade, estado, CEP, InvoiceNumberFROM cliente Junte-se INVOICEUSING (Cliente) -Criar VISTA SKI_CUST2 ASSeleccione nome, sobrenome, rua, cidade, estado, CEP, ProductIDFROM SKI_CUST1 Cadastre INVOICE_LINEUSING (InvoiceNumber) VISTA -Criar SKI_CUST3 ASSeleccione nome, sobrenome, rua, cidade, estado, CEP, CategoryFROM SKI_CUST2 Cadastre PRODUCTUSING (ProductID) -Criar VISTA SKI_CUST ASSeleccione FirstName DISTINCT, sobrenome, Rua, Cidade, Estado, ZipcodeFROM SKI_CUST3WHERE CATEGORIA = `Ski` -

Estes CREATE VIEW declarações combinar dados de várias tabelas usando a JUNTE-SE operador.

Aqui está um resumo dos quatro CREATE VIEW afirmações:

Video: Criando Tabelas via Design no SQL SERVER 2012

  • A primeira declaração combina colunas da tabela de clientes com uma coluna da tabela de fatura para criar o SKI_CUST1 Visão.

  • O segundo combina declaração SKI_CUST1 com uma coluna da tabela de INVOICE_LINE para criar o SKI_CUST2 Visão.

  • O terceiro combina declaração SKI_CUST2 com uma coluna da tabela de produto para criar a SKI_CUST3 Visão.

  • A quarta declaração filtra todas as linhas que não têm uma categoria de Esqui. O resultado é uma visão (SKI_CUST) Que contém os nomes e endereços de todos os clientes que compraram pelo menos um produto no Esqui categoria.

    o DISTINCT palavra-chave no quarto CREATE VIEW‘s SELECIONAR cláusula garante que você tem apenas uma entrada para cada cliente, mesmo que alguns clientes fizeram várias compras de itens de esqui.


Publicações relacionadas