Visões simples: reutilização lógica
Crie visões para encapsular consultas complexas, simplificar relatórios e conceder acesso de leitura a um subconjunto de colunas.
Visões simples: reutilização lógica é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
O que é uma visualização?
Uma visualização é um SELECT salvo. Toda vez que consultar a visualização, o SELECT subjacente será executado. É como uma consulta nomeada sobre a qual pode utilizar JOIN, filtrar e agregar.
CREATE VIEW active_users AS
SELECT id, email, full_name
FROM users
WHERE deleted_at IS NULL;Utilizando uma visualização
Consulte-a como qualquer tabela:
SELECT COUNT(*) FROM active_users;
SELECT * FROM active_users WHERE email LIKE '%@gmail.com';As visualizações não são armazenadas
A definição da visualização é armazenada, não o resultado. Cada consulta expande a visualização e executa o SELECT subjacente. Aplicam-se as mesmas considerações sobre o plano de consulta.
Por que utilizar visualizações?
- Reutilização — defina uma consulta complexa uma vez
- Abstração — oculte a implementação (una 3 tabelas → "active_users")
- Segurança — conceda SELECT na visualização sem expor as tabelas base
- Compatibilidade — mantenha formas antigas de consulta funcionando após alterações no esquema
CREATE OR REPLACE
Atualize uma visualização no próprio lugar — mas somente se os tipos e a ordem das colunas coincidirem:
CREATE OR REPLACE VIEW active_users AS
SELECT id, email, full_name, last_login
FROM users
WHERE deleted_at IS NULL;
-- ERROR if columns conflict; DROP VIEW + CREATE VIEW instead.Visualizações com JOIN e agregações
Caso comum: agregação por usuário:
CREATE VIEW user_stats AS
SELECT u.id, u.email,
COUNT(o.id) AS order_count,
COALESCE(SUM(o.total), 0) AS revenue
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;Visualizações atualizáveis
Visualizações simples (uma única tabela, sem agregação e sem DISTINCT) são atualizáveis — pode executar INSERT/UPDATE/DELETE por meio delas. O PostgreSQL as atualiza automaticamente quando possível.
Visualizações qualificadas pelo esquema
Coloque as visualizações utilitárias em um esquema dedicado:
CREATE SCHEMA api;
CREATE VIEW api.users_public AS
SELECT id, email, full_name FROM users WHERE deleted_at IS NULL;
GRANT SELECT ON api.users_public TO app_reader;Visualizações e permissões
Por padrão, uma visualização é executada com os privilégios do usuário que consulta — ele ainda precisa de permissão nas tabelas base. Para permitir que um usuário com poucos privilégios consulte uma tabela sensível, utilize funções SECURITY DEFINER.
Considerações de desempenho
O planejador expande as visualizações e aplica suas otimizações habituais. Às vezes, o GROUP BY de uma visualização impede o envio antecipado do predicado — divida a consulta ou reescreva-a se EXPLAIN mostrar um problema.
Dependências das visualizações
A exclusão de uma tabela base é bloqueada se uma visualização depender dela. Utilize DROP TABLE ... CASCADE somente quando essa for sua intenção. Liste as dependências:
SELECT * FROM pg_depend
WHERE refobjid = 'users'::REGCLASS;Recapitulação
Visualizações são consultas SELECT reutilizáveis.
- Defina uma vez, consulte muitas vezes
- Abstração e segurança
- Atualizáveis quando simples
- Reexecutadas a cada consulta — sem armazenamento em cache integrado
Verificação rápida
Consultar uma visualização armazena o resultado dela?
Perguntas Frequentes
A aula “Visões simples: reutilização lógica” é grátis?
Sim — o texto completo de “Visões simples: reutilização lógica” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “Visões simples: reutilização lógica”?
Crie visões para encapsular consultas complexas, simplificar relatórios e conceder acesso de leitura a um subconjunto de colunas. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Visões simples: reutilização lógica”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Visões simples: reutilização lógica
- Visões atualizáveis e gatilhos INSTEAD OF
- Visões materializadas e estratégias de REFRESH
- Quando pré-agregar