MySQL – VIEWS – Criando Tabelas Virtuais (Visões)

MySQL – VIEWS – Criando Tabelas Virtuais (Visões)

Uma View (Exibição / Visão) é uma tabela virtual (estrutura de dados) baseada no conjunto de resultados de uma consulta SQL, criada a partir de um conjunto de tabelas (ou outras views) presentes no banco, que servem com tabelas-base.

Contém linhas e colunas como uma tabela real, e pode receber comandos como declarações JOIN, WHERE e funções como uma tabela normal. A view fica armazenada no banco de dados.

Mostra sempre resultados de dados atualizados, pois o motor do banco de dados recria os dados toda vez que um usuário consulta a visão.

Aplicações das Views

Usamos views para propósitos diversos:

  • Para simplificar o acesso a dados que estão armazenados em múltiplas tabelas relacionadas
  • Implementar segurança nos dados de uma tabela, por exemplo criando uma visão que limite os dados que podem ser acessados, por meio de uma cláusula WHERE
  • Prover isolamento de uma aplicação da estrutura específica de tabelas do banco acessado.

Como criar Views no MySQL

Podemos criar uma visão no MySQL usando a sintaxe abaixo:

Sintaxe:

CREATE VIEW Nome_visão
AS SELECT colunas
FROM tabela
WHERE condições;

Exemplo: Vamos criar uma view de nome vw_LivrosAutores que retorne ao ser consultada os nomes dos livros e seus respectivos autores, eliminando a necessidade de realizar INNER JOIN toda vez que precisarmos desses dados:

CREATE VIEW vw_LivrosAutores
AS SELECT tbl_Livro.Nome_Livro AS Livro, tbl_autores.Nome_Autor AS Autor
FROM tbl_Livro
INNER JOIN tbl_autores
ON tbl_Livro.ID_Autor = tbl_autores.ID_Autor;

Como usar a View criada

Vamos utilizar a view criada, realizando uma consulta nela como se estivéssemos consultando uma tabela real do banco de dados:

SELECT Livro, Autor
FROM vw_LivrosAutores
ORDER BY Autor;

SQL Views no MySQL

Veja como ficou mais simples retornar os nomes dos livros e dos autores agora – o código fica muito mais limpo e simples, facilitando por exemplo sua incorporação em uma aplicação que acesse o banco de dados do MySQL.

Como alterar uma View

Podemos alterar uma view, para que ela funcione de forma diferente, usando o comando ALTER VIEW. Vamos alterar a view vw_LivrosAutores para incluir também os preços dos livros. Veja o código abaixo:

ALTER  VIEW vw_LivrosAutores AS
SELECT tbl_Livro.Nome_Livro AS Livro, tbl_autores.Nome_Autor AS Autor, Preco_Livro AS Valor
FROM tbl_Livro
INNER JOIN tbl_autores
ON tbl_Livro.ID_Autor = tbl_autores.ID_Autor;

Podemos testá-la com uma consulta:

SELECT * FROM vw_LivrosAutores;

Views SQL no MySQL

Como visualizar as views existentes nos bancos de dados

Podemos consultar as views existentes em um banco de dados com o comando a seguir:

SHOW FULL TABLES IN nome_banco
WHERE TABLE_TYPE LIKE 'VIEW';

Por exemplo, para ver todas as visões criadas em um banco de nome db_MeusLivros:

SHOW FULL TABLES IN db_MeusLivros
WHERE TABLE_TYPE LIKE 'VIEW';

Caso o banco a ser verificado seja o selecionado atualmente, não é necessário informar seu nome ao consultar as views, como segue:

SHOW FULL TABLES
WHERE TABLE_TYPE LIKE 'VIEW';

Finalmente, podemos ver todas as views de todos os bancos de dados existentes na instância do MySQL com o comando a seguir:

SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_TYPE LIKE 'VIEW';

Como excluir views

Se precisarmos excluir uma view do MySQL, basta usar o comando DROP VIEW seguido do nome da View. Vamos excluir a view vw_LivrosAutores:

DROP VIEW vw_LivrosAutores;

É isso aí! Agora assista a um vídeo sobre Views do canal da Bóson Treinamentos:

Próximo: Consultar dados em duas ou mais Tabelas com INNER JOIN.

 

Sobre Fábio dos Reis (1206 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

6 Comentários em MySQL – VIEWS – Criando Tabelas Virtuais (Visões)

  1. Francisco Régis Ferreira Lopes // 13/03/2016 em 20:47 // Responder

    Olá, Fábio. Muito legal seus vídeos… Vou estudar mais detalhadamente. Sua didática é muito boa! Show de bola!

  2. Daniel Amaral // 11/04/2016 em 12:53 // Responder

    Excelente post, geralmente encontramos muitos posts superficiais, mais você foi bem pratico e exemplificou legal, de forma simples e clara. Parabéns!

  3. Tiago Alves // 10/03/2019 em 11:52 // Responder

    Obrigado 🙂

  4. como faço para montar um view onde tenho string seja GET ou um POST ou variavel ? como faço ?

Escreva um comentário

Seu e-mail não será divulgado


*