Manual MyTable

PostgreSQL • Executar SELECT

Este capítulo mostra como montar e executar consultas SELECT no PostgreSQL usando o MyTable, interpretar o resultado, ajustar filtros e melhorar a performance.

Onde executar

Exemplo rápido

SELECT id, nome, created_at
FROM public.clientes
WHERE status = 'ATIVO'
ORDER BY created_at DESC
LIMIT 100 OFFSET 0;

Passo a passo

  1. No Editor, digite sua consulta SELECT.
  2. Clique em Executar (ou use o atalho indicado pelo app).
  3. Veja a grade de resultados, barras de status (linhas retornadas / tempo), e use a paginação quando disponível.

Filtros comuns

  • Texto: LIKE / ILIKE (case-insensitive) — ex.: WHERE nome ILIKE '%maria%'.
  • Números: =, >, >=, <, BETWEEN.
  • Datas: operadores e funções — ex.: WHERE created_at >= NOW() - INTERVAL '7 days'.
  • Listas: IN (...) — ex.: WHERE status IN ('ATIVO','PENDENTE').

Ordenação, Limite e Paginação

  • ORDER BY define a ordem do resultado (ex.: ORDER BY created_at DESC).
  • LIMIT controla o máximo de linhas retornadas.
  • OFFSET pula as primeiras n linhas — combine com LIMIT para “páginas”.

Junções (JOIN) essenciais

SELECT p.id, p.nome, c.descricao AS categoria
FROM public.produtos p
JOIN public.categorias c ON c.id = p.categoria_id
WHERE p.preco >= 100
ORDER BY p.nome;

Agrupamentos (GROUP BY) e agregações

SELECT categoria_id, COUNT(*) AS total, AVG(preco) AS media_preco
FROM public.produtos
GROUP BY categoria_id
HAVING COUNT(*) >= 10
ORDER BY total DESC;

Vendo o plano de execução (EXPLAIN / ANALYZE)

Para identificar gargalos e uso (ou não) de índices:

EXPLAIN ANALYZE
SELECT *
FROM public.pedidos
WHERE cliente_id = 123
AND created_at >= NOW() - INTERVAL '30 days';
  • Procure por Seq Scan (varredura total) vs. Index Scan.
  • Crie/ajuste índices conforme necessário: PostgreSQL • Índices.

Salvar, reutilizar e compartilhar

  • Use os recursos do Editor para salvar consultas favoritas.
  • Você pode exportar resultados quando necessário: Exportar Tabela.

Boas práticas de performance

  • Selecione apenas as colunas necessárias (SELECT col1, col2), evite SELECT * em produção.
  • Use LIMIT em telas de inspeção para evitar respostas muito grandes.
  • Garanta filtros por colunas indexadas em buscas frequentes.
  • Para datas, prefira intervalos fechados (ex.: último mês) e tipos corretos (timestamp, date).

Erros comuns & soluções

  • Permissão negada: confira Permissões.
  • Tabela/coluna não existe: verifique o schema (ex.: public.tabela) e a ortografia.
  • Consulta lenta: use EXPLAIN ANALYZE, índices e filtros seletivos.

Relacionados