Resumo : neste tutorial, você aprenderá como usar a CREATE VIEW
instrução MySQL para criar uma nova visualização no banco de dados.
CREATE VIEW
Introdução à instrução MySQL
A CREATE VIEW
instrução cria uma nova visualização no banco de dados. Aqui está a sintaxe básica da CREATE VIEW
instruçã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 VIEW
palavras-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 REPLACE
opção se desejar substituir uma visualização existente se a visualização já existir. Se a visualização não existir, OR REPLACE
nã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 SELECT
instruçã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 SELECT
instruçã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 BY
cláusula na SELECT
instrução, mas a ignora se você selecionar na visualização uma consulta que possui sua própria ORDER BY
cláusula.
Por padrão, a CREATE VIEW
instruçã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 VIEW
Exemplos de MySQL
Vejamos alguns exemplos de uso da CREATE VIEW
instrução para criar novas visualizações.
1) Criando um exemplo de visualização simples
Vamos dar uma olhada na orderDetails
tabela do banco de dados de exemplo :
Esta instrução usa a CREATE VIEW
instruçã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 TABLE
comando para visualizar todas as tabelas do classicmodels
banco de dados, verá que a visualização salesPerOrder
está aparecendo na lista.
SHOW TABLES;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
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 TABLES
comando da seguinte forma:
SHOW FULL TABLES;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A table_type
coluna 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 )
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 bigSalesOrder
com base na salesPerOrder
visualização para mostrar todos os pedidos de vendas cujo total seja maior que 60,000
o 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 bigSalesOrder
visualização da seguinte maneira:
SELECT
orderNumber,
total
FROM
bigSalesOrder;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Criando uma visualização com exemplo de junção
O exemplo a seguir usa a CREATE VIEW
instrução para criar uma visualização baseada em diversas tabelas. Ele usa as INNER JOIN
clá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 customerOrders
visualizaçã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 VIEW
instrução para criar uma visualização cuja SELECT
instruçã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 aboveAvgProducts
são simples da seguinte maneira:
SELECT * FROM aboveAvgProducts;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
5) Exemplo de criação de uma visualização com colunas de visualização explícitas
Esta instrução usa a CREATE VIEW
instruçã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 customerOrderStats
visualizaçã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 VIEW
instrução MySQL para criar visualizações no banco de dados.