MySQL CRIAR VISUALIZAÇÃO

Resumo : neste tutorial, você aprenderá como usar a CREATE VIEW  instrução MySQL para criar uma nova visualização no banco de dados.

CREATE VIEWIntrodução à instrução MySQL

A CREATE VIEWinstrução cria uma nova visualização no banco de dados. Aqui está a sintaxe básica da CREATE VIEWinstrução:

CREATE [OR REPLACE] VIEW [db_name.]view_name [(column_list)]
AS
  select-statement;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

Primeiro, especifique o nome da visualização que deseja criar após as CREATE VIEWpalavras-chave. O nome da visualização é exclusivo em um banco de dados. Como as visualizações e tabelas no mesmo banco de dados compartilham o mesmo namespace, o nome de uma visualização não pode ser igual ao nome de uma tabela existente.

Segundo, use a OR REPLACEopção se desejar substituir uma visualização existente se a visualização já existir. Se a visualização não existir, OR REPLACEnão terá efeito.

Terceiro, especifique uma lista de colunas para a visualização. Por padrão, as colunas da visualização são derivadas da lista de seleção da SELECTinstrução. No entanto, você pode especificar explicitamente a lista de colunas da visualização listando-as entre parênteses após o nome da visualização.

Finalmente, especifique uma SELECTinstrução que defina a visão. A SELECT  instrução pode consultar dados de tabelas ou visualizações. O MySQL permite que você use a ORDER BYcláusula na SELECTinstrução, mas a ignora se você selecionar na visualização uma consulta que possui sua própria ORDER BYcláusula.

Por padrão, a CREATE VIEWinstrução cria uma visualização no banco de dados atual. Se quiser criar explicitamente uma visualização em um determinado banco de dados, você poderá qualificar o nome da visualização com o nome do banco de dados.

CREATE VIEWExemplos de MySQL

Vejamos alguns exemplos de uso da CREATE VIEWinstrução para criar novas visualizações.

1) Criando um exemplo de visualização simples

Vamos dar uma olhada na orderDetailstabela do banco de dados de exemplo :

Esta instrução usa a CREATE VIEWinstrução para criar uma visualização que representa o total de vendas por pedido.

CREATE VIEW salePerOrder AS
    SELECT 
        orderNumber, 
        SUM(quantityOrdered * priceEach) total
    FROM
        orderDetails
    GROUP by orderNumber
    ORDER BY total DESC;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Se você usar o SHOW TABLEcomando para visualizar todas as tabelas do classicmodelsbanco de dados, verá que a visualização salesPerOrderestá aparecendo na lista.

SHOW TABLES;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mostrar visualização da tabela

Isso ocorre porque as visualizações e tabelas compartilham o mesmo namespace mencionado anteriormente.

Para saber qual objeto é uma visão ou tabela, você usa o SHOW FULL TABLEScomando da seguinte forma:

SHOW FULL TABLES;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mostrar comando de tabela completa

A table_typecoluna no conjunto de resultados especifica o tipo do objeto: visualização ou tabela (tabela base).

Se você quiser consultar o total de vendas para cada pedido de venda, basta executar uma SELECT  instrução simples na SalePerOrder  visualização da seguinte forma:

SELECT * FROM salePerOrder;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mysql create view - exemplo de visualização simples

2) Criando uma visualização baseada em outro exemplo de visualização

MySQL permite que você crie uma visualização baseada em outra visualização.

Por exemplo, você pode criar uma visualização chamada bigSalesOrdercom base na salesPerOrdervisualização para mostrar todos os pedidos de vendas cujo total seja maior que 60,000o seguinte:

CREATE VIEW bigSalesOrder AS
    SELECT 
        orderNumber, 
        ROUND(total,2) as total
    FROM
        salePerOrder
    WHERE
        total > 60000;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Agora, você pode consultar os dados da bigSalesOrdervisualização da seguinte maneira:

SELECT 
    orderNumber, 
    total
FROM
    bigSalesOrder;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
criar uma visualização baseada em outra visualização

3) Criando uma visualização com exemplo de junção

O exemplo a seguir usa a CREATE VIEWinstrução para criar uma visualização baseada em diversas tabelas. Ele usa as INNER JOINcláusulas para unir tabelas.

CREATE OR REPLACE VIEW customerOrders AS
SELECT 
    orderNumber,
    customerName,
    SUM(quantityOrdered * priceEach) total
FROM
    orderDetails
INNER JOIN orders o USING (orderNumber)
INNER JOIN customers USING (customerNumber)
GROUP BY orderNumber;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Esta instrução seleciona dados da customerOrdersvisualização:

SELECT * FROM customerOrders 
ORDER BY total DESC;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Esta imagem mostra a saída parcial:

4) Criando uma visualização com um exemplo de subconsulta

O exemplo a seguir usa a CREATE VIEWinstrução para criar uma visualização cuja SELECTinstrução usa uma subconsulta . A visualização contém produtos cujos preços de compra são superiores ao preço médio de todos os produtos.

CREATE VIEW aboveAvgProducts AS
    SELECT 
        productCode, 
        productName, 
        buyPrice
    FROM
        products
    WHERE
        buyPrice > (
            SELECT 
                AVG(buyPrice)
            FROM
                products)
    ORDER BY buyPrice DESC;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Esses dados de consulta aboveAvgProductssão simples da seguinte maneira:

SELECT * FROM aboveAvgProducts;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
visualização mysql com subconsulta

5) Exemplo de criação de uma visualização com colunas de visualização explícitas

Esta instrução usa a CREATE VIEWinstrução para criar uma nova visualização baseada nas tabelas de clientes e pedidos com colunas de visualização explícitas:

CREATE VIEW customerOrderStats (
   customerName , 
   orderCount
) 
AS
    SELECT 
        customerName, 
        COUNT(orderNumber)
    FROM
        customers
            INNER JOIN
        orders USING (customerNumber)
    GROUP BY customerName;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Esta consulta retorna dados da customerOrderStatsvisualização:

SELECT 
    customerName,
    orderCount
FROM
    customerOrderStats
ORDER BY 
	orderCount, 
    customerName;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste tutorial, mostramos como usar a CREATE VIEWinstrução MySQL para criar visualizações no banco de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *