Categoria

SQL + Banco de Dados

Views: consultas salvas e reutilizáveis
SQL + Banco de Dados

Views: consultas salvas e reutilizáveis

Uma view (visão) é uma tabela virtual baseada em uma consulta SELECT. Diferentemente de uma tabela real, uma view não armazena dados fisicamente — ela armazena apenas a definição da consulta. Quando você consulta uma view, o banco de dados executa a consulta subjacente e retorna os resultados como se fossem de uma tabela.

05/05/2026
Views materializadas: cache de consultas pesadas
SQL + Banco de Dados 05/05/2026

Views materializadas: cache de consultas pesadas

Views materializadas são objetos de banco de dados que armazenam fisicamente o resultado de uma consulta, funcionando como um cache persistente no disco. Diferentemente das views comuns, que são apenas consultas virtuais executadas a cada acesso, as views materializadas mantêm uma cópia real dos dados em um snapshot específico.

WHERE: filtrando resultados
SQL + Banco de Dados 05/05/2026

WHERE: filtrando resultados

A cláusula WHERE é um dos pilares fundamentais do SQL. Ela permite que você filtre registros de uma tabela com base em condições específicas, retornando apenas os dados que atendem aos critérios definidos. Sem o WHERE, um SELECT retornaria todas as linhas da tabela — algo raramente desejado em aplicações reais.

Window functions: LAG, LEAD, FIRST_VALUE, LAST_VALUE
SQL + Banco de Dados 05/05/2026

Window functions: LAG, LEAD, FIRST_VALUE, LAST_VALUE

As funções de janela (window functions) são um dos recursos mais poderosos do SQL moderno. Diferentemente das funções de agregação tradicionais como SUM() ou AVG(), que colapsam múltiplas linhas em um único resultado, as funções de janela realizam cálculos através de um conjunto de linhas relacionadas à linha atual — sem perder a granularidade dos dados individuais.

Window functions: ROW_NUMBER, RANK, DENSE_RANK
SQL + Banco de Dados 05/05/2026

Window functions: ROW_NUMBER, RANK, DENSE_RANK

Funções de janela (window functions) são um recurso avançado de SQL que permite realizar cálculos em um conjunto de linhas relacionadas à linha atual, sem agrupar os resultados em uma única saída. Diferentemente das funções de agregação tradicionais (como SUM, COUNT, AVG), as window functions preservam cada linha individual, adicionando uma coluna com o resultado do cálculo sobre uma "janela" definida de dados.

TTL e expiração de chaves no Redis
SQL + Banco de Dados 05/05/2026

TTL e expiração de chaves no Redis

TTL (Time-To-Live) é um mecanismo fundamental em bancos de dados em memória como o Redis, permitindo que chaves expirem automaticamente após um período definido. Diferente de bancos SQL relacionais, onde a expiração de dados geralmente requer triggers, eventos agendados (como eventos no MySQL) ou jobs externos (como pg_cron no PostgreSQL), o Redis implementa a expiração diretamente no motor de armazenamento, oferecendo desempenho e simplicidade superiores para casos de uso como cache e sessões.

UPDATE: modificando dados existentes
SQL + Banco de Dados 05/05/2026

UPDATE: modificando dados existentes

O comando UPDATE é a instrução SQL responsável por modificar registros já existentes em uma tabela. Sua estrutura fundamental é direta, mas poderosa:

Upsert patterns: INSERT ... ON CONFLICT em ação
SQL + Banco de Dados 05/05/2026

Upsert patterns: INSERT ... ON CONFLICT em ação

Upsert é uma operação que combina INSERT e UPDATE em uma única instrução atômica. O nome vem da junção de "update" + "insert". Quando você tenta inserir um registro que já existe (conflito de chave única ou primária), o banco automaticamente executa um UPDATE no registro existente.

Vacuum e analyze: manutenção automática do PostgreSQL
SQL + Banco de Dados 05/05/2026

Vacuum e analyze: manutenção automática do PostgreSQL

O PostgreSQL implementa o controle de concorrência multiversão (MVCC) para permitir que múltiplas transações acessem dados simultaneamente sem bloqueios excessivos. Sempre que uma linha é atualizada ou excluída, o banco não remove fisicamente o registro antigo — ele cria uma nova versão e marca a anterior como "morta" (dead tuple). Essas versões obsoletas se acumulam ao longo do tempo.