Visualizações MySQL

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 customerse paymentsdo banco de dados de exemplo .

Esta consulta retorna dados de ambas as tabelas customerse paymentsusando 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 VIEWinstrução. Esta declaração cria uma visão customerPaymentsbaseada 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 VIEWinstruçã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 customerPaymentsvisualização usando a SELECTinstruçã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 SELECTinstruçã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 SELECTinstrução que recupera dados de uma ou mais tabelas. Esta imagem ilustra uma visualização baseada em colunas de múltiplas tabelas:

Visualização MySQL

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 daysofweekque 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 daysofweekvisualizaçã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 SELECTinstruçã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 employeespode 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

Deixe um comentário

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