Manual MyTable

MySQL • Views

As views (visões) são consultas salvas que se comportam como tabelas virtuais. Elas simplificam relatórios, encapsulam JOINs complexos e padronizam acesso aos dados sem duplicar informação. Nesta tela você pode criar, editar, remover e visualizar views no MySQL.


Abrir “Views”

  1. Conecte-se à sua conexão MySQL e selecione o database.
  2. No menu do database, toque em Views.
  3. Veja a lista de views com definição, dependências (tabelas usadas) e ações.

Criar view

  1. Toque em Nova View.
  2. Informe o nome (ex.: vw_vendas_mensais).
  3. Escreva a consulta SELECT base (pode incluir JOIN, WHERE, GROUP BY, HAVING, ORDER BY*).
    *ORDER BY em view só tem efeito se a consulta final também ordenar; trate ordenação no consumo.
  4. (Opcional) Marque SQL SECURITY DEFINER e escolha o definer (conta que “assina” a view) quando quiser que a view execute com permissões do criador.
  5. (Opcional) Defina ALGORITHM (MERGE/TEMPTABLE) quando necessário.
    Deixe “default” salvo, a menos que haja exigência específica.
  6. Salvar.

Dica: Teste primeiro o SELECT no Executar SELECT ou no Editor SQL para garantir resultado e performance.


Editar view

  • Abra a view na lista e toque em Editar para ajustar a consulta, algoritmo, segurança ou comentários.
  • Ao salvar, a view é recriada; verifique impactos em relatórios que a consomem.

Ver dados da view

  • Toque em Visualizar para abrir a grade com filtros e paginação.
  • Use Exportar (quando disponível) para CSV/JSON/XLSX do resultado.

Permissões e segurança

  • Quem acessa a view precisa de SELECT nela e nas tabelas subjacentes, salvo se usar SQL SECURITY DEFINER (nesse caso, herda do criador conforme o definer).
  • Gerencie privilégios em MySQL • Permissões.

Atualizações via view (updatable views)

Algumas views são atualizáveis (updatable): permitem INSERT/UPDATE/DELETE diretamente. Isso depende de regras (sem agregações, DISTINCT, GROUP BY, funções não determinísticas etc.).

  • Quando a view não for atualizável, a UI exibirá apenas leitura.
  • Para edição de dados, prefira o CRUD nas tabelas base.

Boas práticas

  • Nomeie views com prefixo (ex.: vw_) e semântica clara.
  • Evite lógica pesada que mascare problemas de índices; otimize as tabelas base (veja Índices).
  • Documente a finalidade da view no comentário e mantenha consultas concisas.
  • Se a view ficar lenta, examine o plano do SELECT subjacente com EXPLAIN no Editor SQL.

Limitações e observações

  • MySQL não possui materialized views nativas. Para cache persistido, crie tabela de resumo e atualize por triggers ou jobs externos.
  • ORDER BY dentro da view não garante ordenação no consumo; use ORDER BY na consulta final.
  • Definer inválido (usuário apagado) pode impedir acesso; atualize o definer quando necessário.

Erros comuns (e soluções)

“View 'X' already exists”

  • Escolha outro nome ou remova/renomeie a view existente.

“The definer specified is not valid” / Permissão negada

  • O usuário do DEFINER não existe ou não tem privilégios; ajuste o definer ou use invoker.

“View's SELECT contains a subquery in the FROM clause” (restrições de atualização)

  • A view não será atualizável. Edite as tabelas base ou use CRUD direto.

“Unknown column” / “Table doesn't exist”

  • Algum objeto referenciado foi renomeado/removido. Atualize a definição da view.

Ferramentas relacionadas

Próximo: MySQL • Triggers • Voltar: MySQL • Permissões