MySQL Visualizações: como criar visualizações a partir de tabelas com exemplos
O que são visualizações em MySQL?
VISTAS são tabelas virtuais que não armazenam nenhum dado próprio, mas exibem dados armazenados em outras tabelas. Em outras palavras, VIEWS nada mais são do que consultas SQL. Uma visualização pode conter todas ou algumas linhas de uma tabela. A MySQL view pode mostrar dados de uma tabela ou de várias tabelas.
MySQL Sintaxe de visualizações
Vejamos agora a sintaxe básica usada para criar uma visualização em MySQL.
CREATE VIEW `view_name` AS SELECT statement;
ONDE
- “CRIAR VISUALIZAÇÃO `view_name`” conta MySQL servidor para criar um objeto de visualização no banco de dados chamado `view_name`
- “Instrução AS SELECT” são as instruções SQL a serem compactadas no MySQL Visualizações. Pode ser uma instrução SELECT que pode conter dados de uma tabela ou de várias tabelas.
Como criar visualizações em MySQL
A seguir está um processo passo a passo para criar uma visualização em MySQL:
Passo 1) Crie nossa primeira visualização usando o “myflixdb”
Vamos agora criar nossa primeira view utilizando o “myflixdb” vamos criar uma view simples que restringe as colunas vistas na tabela de membros.
Suponha que os requisitos de autorização estabeleçam que o departamento de contas só pode ver o número, nome e sexo do membro na tabela do membro. Para conseguir isso, você pode criar uma VIEW –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Passo 2) Expandindo o nó de visualizações
Executando o script acima em MySQL workbench contra o myflixdb e expandir o nó de visualizações no explorador de banco de dados nos dá os seguintes resultados.
Observe que o objeto accounts_v_members agora está visível nos objetos de visualizações do banco de dados.
Passo 3) Execute uma instrução SELECT
Vamos agora executar um Instrução SELECT que seleciona todos os campos da visualização conforme mostrado abaixo MySQL criar exemplo de visualização.
SELECT * FROM `accounts_v_members`;
Passo 4) Executar um script
Executando o script acima em MySQL workbench contra myflixdb nos dá os seguintes resultados mostrados abaixo.
membership_number | full_names | gender |
---|---|---|
1 | Janet Jones | Female |
2 | Janet Smith Jones | Female |
3 | Robert Phil | Male |
4 | Gloria Williams | Female |
5 | Leonard Hofstadter | Male |
6 | Sheldon Cooper | Male |
7 | Rajesh Koothrappali | Male |
8 | Leslie Winkle | Male |
9 | Howard Wolowitz | Male |
Somente as colunas autorizadas do departamento de contas foram retornadas. Outros detalhes encontrados na tabela de membros foram ocultados.
Se quisermos ver as instruções SQL que constituem uma visualização específica, podemos usar o script mostrado abaixo para fazer isso.
SHOW CREATE VIEW `accounts_v_members`;
A execução do script acima fornece o nome da visualização e as instruções SQL SELECT usadas para criar a visualização.
Junções e visualizações em MySQL
Vejamos agora um exemplo bastante complexo que envolve múltiplas tabelas e utiliza junta.
Iremos empacotar o JOIN criado que obtém informações de três (3) tabelas, nomeadamente membros, filmes e locações de filmes. Abaixo está o script que nos ajuda a conseguir isso.
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
A execução dos scripts acima cria a visualização chamada general_v_movie_rentals em nosso myflixdb
Vamos agora selecionar todos os campos de uma tabela chamada general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Executando o script acima em MySQL bancada contra o myflixdb nos dá os seguintes resultados mostrados abaixo.
membership_number | full_names | title | transaction_date | return_date |
---|---|---|---|---|
1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
Observe que não precisamos escrever a complexa consulta JOIN para obter informações sobre membros, filmes e detalhes de aluguel de filmes. Simplesmente usamos a visão em uma instrução SELECT regular como qualquer outra tabela comum. A visualização pode ser chamada de qualquer lugar no sistema do aplicativo em execução no myflixdb.
Colocando visualizações em MySQL
O comando DROP pode ser usado para excluir uma visualização do banco de dados isso não é mais necessário. A sintaxe básica para eliminar uma visualização é a seguinte.
DROP VIEW ` general_v_movie_rentals `;
Por que usar visualizações?
Você pode querer usar visualizações principalmente pelos seguintes três motivos
- Em última análise, você usará seu SQL conhecimento, para criar aplicações, que utilizarão um banco de dados para requisitos de dados. É recomendado que você use VIEWS da estrutura da tabela original em seu aplicativo em vez de usar as próprias tabelas. Isso garante que quando você refatorar seu banco de dados, seu código legado verá o esquema original por meio da visualização sem interromper o aplicativo.
- VIEWS aumentam a reutilização. Você não terá que criar consultas complexas envolvendo junções repetidamente. Toda a complexidade é convertida em uma única linha de consulta usando VIEWS. Esse código condensado será mais fácil de integrar em seu aplicativo. Isso eliminará chances de erros de digitação e seu código ficará mais legível.
- VIEWS ajudam na segurança dos dados. Você pode usar visualizações para mostrar apenas informações autorizadas aos usuários e ocultar dados confidenciais, como números de cartão de crédito.
Resumo
- As visualizações são tabelas virtuais; eles não contêm os dados retornados. Os dados são armazenados nas tabelas referenciadas na instrução SELECT.
- As visualizações melhoram a segurança do banco de dados, mostrando apenas os dados pretendidos aos usuários autorizados. Eles escondem dados confidenciais.
- As visualizações facilitam a vida, pois você não precisa escrever consultas complexas repetidamente.
- É possível usar INSERT, UPDATE e DELETE em uma VIEW. Estas operações irão alterar as tabelas subjacentes da VIEW. A única consideração é que VIEW deve conter todas as colunas NOT NULL das tabelas às quais faz referência. Idealmente, você não deve usar VIEWS para atualização.