Resumo : neste tutorial, você aprenderá sobre as visualizações do MySQL e como manipular as visualizações de maneira eficaz.
Introdução às visualizações MySQL
Vamos ver as tabelas a seguir customers
e payments
do banco de dados de exemplo .
Esta consulta retorna dados de ambas as tabelas customers
e payments
usando a junção interna :
SELECT
customerName,
checkNumber,
paymentDate,
amount
FROM
customers
INNER JOIN
payments USING (customerNumber);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Da próxima vez, se desejar obter as mesmas informações, incluindo nome do cliente, número do cheque, data de pagamento e valor, será necessário emitir a mesma consulta novamente.
Uma maneira de fazer isso é salvar a consulta em um arquivo, seja .txt ou .sql, para que posteriormente você possa abri-la e executá-la no MySQL Workbench ou em qualquer outra ferramenta cliente MySQL.
A melhor maneira de fazer isso é salvar a consulta no servidor de banco de dados e atribuir um nome a ela. Essa consulta nomeada é chamada de visualização do banco de dados ou simplesmente visualização .
Por definição, uma visualização é uma consulta nomeada armazenada no catálogo do banco de dados.
Para criar uma nova visão você usa a CREATE VIEW
instrução. Esta declaração cria uma visão customerPayments
baseada na consulta acima:
CREATE VIEW customerPayments
AS
SELECT
customerName,
checkNumber,
paymentDate,
amount
FROM
customers
INNER JOIN
payments USING (customerNumber);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Depois de executar a CREATE VIEW
instrução, o MySQL cria a visualização e a armazena no banco de dados.
Agora, você pode referenciar a visualização como uma tabela em instruções SQL. Por exemplo, você pode consultar dados da customerPayments
visualização usando a SELECT
instrução:
SELECT * FROM customerPayments;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Como você pode ver, a sintaxe é muito mais simples.
Observe que uma visualização não armazena fisicamente os dados. Quando você emite a SELECT
instrução na visualização, o MySQL executa a consulta subjacente especificada na definição da visualização e retorna o conjunto de resultados. Por esse motivo, às vezes, uma visualização é chamada de tabela virtual.
O MySQL permite criar uma visualização baseada em uma SELECT
instrução que recupera dados de uma ou mais tabelas. Esta imagem ilustra uma visualização baseada em colunas de múltiplas tabelas:
Além disso, o MySQL ainda permite criar uma visualização que não faz referência a nenhuma tabela. Mas raramente você encontrará esse tipo de visão na prática.
Por exemplo, você pode criar uma visualização chamada daysofweek
que retorna 7 dias por semana executando a seguinte consulta:
CREATE VIEW daysofweek (day) AS
SELECT 'Mon'
UNION
SELECT 'Tue'
UNION
SELECT 'Web'
UNION
SELECT 'Thu'
UNION
SELECT 'Fri'
UNION
SELECT 'Sat'
UNION
SELECT 'Sun';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você pode consultar dados da daysofweek
visualização da seguinte maneira:
SELECT * FROM daysofweek;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Esta imagem mostra a saída:
Vantagens das visualizações MySQL
As visualizações do MySQL trazem as seguintes vantagens.
1) Simplifique consultas complexas
As visualizações ajudam a simplificar consultas complexas. Se você tiver alguma consulta complexa usada com frequência, poderá criar uma visualização com base nela para poder fazer referência à visualização usando uma SELECT
instrução simples em vez de digitar a consulta novamente.
2) Torne a lógica de negócios consistente
Suponha que você precise escrever repetidamente a mesma fórmula em todas as consultas. Ou você tem uma consulta que possui uma lógica de negócios complexa. Para tornar essa lógica consistente em todas as consultas, você pode usar uma visualização para armazenar o cálculo e ocultar a complexidade.
3) Adicione camadas extras de segurança
Uma tabela pode expor muitos dados, incluindo dados confidenciais, como informações pessoais e bancárias.
Ao usar visualizações e privilégios, você pode limitar quais dados os usuários podem acessar, expondo-lhes apenas os dados necessários.
Por exemplo, a tabela employees
pode conter informações de SSN e endereço, que devem ser acessíveis apenas ao departamento de RH.
Para expor informações gerais como nome, sobrenome e gênero ao departamento de Administração Geral (GA), você pode criar uma visualização com base nessas colunas e conceder a visualização aos usuários do departamento de GA, e não a tabela inteira employees
.
4) Habilite a compatibilidade com versões anteriores
Em sistemas legados, as visualizações podem permitir compatibilidade com versões anteriores.
Suponha que você queira normalizar uma tabela grande em muitas tabelas menores. E você não quer impactar os aplicativos atuais que fazem referência à tabela.
Neste caso, você pode criar uma visão cujo nome seja igual à tabela baseada nas novas tabelas para que todas as aplicações possam referenciar a visão como se fosse uma tabela.
Observe que uma visualização e uma tabela não podem ter o mesmo nome, portanto, você precisa eliminar a tabela primeiro antes de criar uma visualização cujo nome seja igual ao da tabela excluída.
Gerenciando visualizações no MySQL
- Criar visualizações – mostra como usar a
CREATE VIEW
instrução para criar uma nova visualização no banco de dados. - Entenda os algoritmos de processamento de visualizações – aprenda como o MySQL processa uma visualização.
- Crie visualizações atualizáveis – aprenda como criar visualizações atualizáveis.
- Crie visualizações com
WITH CHECK OPTION
– garanta a consistência das visualizações usando aWITH CHECK OPTION
cláusula. LOCAL & CASCADED
eWITH CHECK OPTION
– especifique o escopo da verificação com as opçõesLOCAL
eCASCADED
.- Mostrar visualizações – fornece maneiras de encontrar visualizações em um banco de dados.
- Mostrar criação de visualização – aprenda como exibir a instrução que cria uma visualização.
- Renomear visualizações – altere o nome de uma visualização para outra.
- Eliminar visualizações – orienta você sobre como remover uma ou mais visualizações existentes.