Visualizações do MySQL
Instrução CREATE VIEW do MySQL
Em SQL, uma visualização é uma tabela virtual baseada no conjunto de resultados de uma instrução SQL.
Uma visão contém linhas e colunas, assim como uma tabela real. Os campos em uma visão são campos de uma ou mais tabelas reais no banco de dados.
Você pode adicionar instruções e funções SQL a uma exibição e apresentar os dados como se fossem provenientes de uma única tabela.
Uma exibição é criada com a CREATE VIEW
instrução.
CREATE VIEW Sintaxe
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Nota: Uma visualização sempre mostra dados atualizados! O mecanismo de banco de dados recria a exibição sempre que um usuário a consulta.
Exemplos de CREATE VIEW do MySQL
O SQL a seguir cria uma view que mostra todos os clientes do Brasil:
Exemplo
CREATE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = 'Brazil';
Podemos consultar a visão acima da seguinte forma:
Exemplo
SELECT * FROM [Brazil Customers];
O SQL a seguir cria uma visualização que seleciona todos os produtos da tabela "Produtos" com preço superior ao preço médio:
Exemplo
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName, Price
FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);
Podemos consultar a visão acima da seguinte forma:
Exemplo
SELECT * FROM [Products Above Average Price];
MySQL atualizando uma visualização
Uma visão pode ser atualizada com a CREATE OR REPLACE VIEW
instrução.
CREATE OR REPLACE VIEW Sintaxe
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
O SQL a seguir adiciona a coluna "Cidade" à visualização "Clientes do Brasil":
Exemplo
CREATE OR REPLACE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName, City
FROM Customers
WHERE Country = 'Brazil';
MySQL descartando uma visualização
Uma visualização é excluída com a DROP VIEW
instrução.
Sintaxe DROP VIEW
DROP VIEW view_name;
O SQL a seguir descarta a visualização "Clientes do Brasil":
Exemplo
DROP VIEW [Brazil Customers];