Voltar para a lista de artigos Artigos
6 minutos de leitura

Como escrever consultas SQL que qualquer pessoa pode entender

Escrever SQL que funcione é uma coisa. Escrever SQL que outra pessoa possa ler e dizer: "Ah, entendi!" é um nível totalmente diferente. E, sinceramente? É uma das coisas mais úteis que você pode aprender quando trabalha com dados.

Seja para criar relatórios, analisar o comportamento do cliente ou responder a uma pergunta rápida do seu chefe, você provavelmente usará SQL. E se esse SQL for confuso ou desorganizado, você deixará todos mais lentos, inclusive você mesmo.

Este guia o ajudará a escrever consultas SQL que sejam fáceis de ler, simples de ajustar e que realmente façam sentido para outras pessoas, mesmo que você ainda não conheça o SQL.

Deseja praticar SQL com exercícios amigáveis para iniciantes? Experimente o cursoSQL para Iniciantes em LearnSQL.com.

Por que escrever SQL compreensível é importante

O SQL não é apenas para máquinas. É claro que o banco de dados executa suas consultas, mas pessoas reais também precisam lê-las. E se o seu SQL for confuso ou desorganizado, você não estará apenas dificultando a vida dos outros, mas também a sua própria.

Escrever um SQL claro economiza tempo. Isso facilita a correção de bugs, a colaboração com colegas de equipe e a revisão de códigos antigos mais tarde, sem coçar a cabeça. Pense nisso como se estivesse escrevendo um bilhete para si mesmo ou para um colega de equipe no futuro - deixe-o claro o suficiente para que não precise de tradução.

O SQL legível também mostra que você se importa. Isso faz parte de ser um bom comunicador. E quando se está em uma equipe, isso é muito importante.

Você já abriu uma consulta gigante de 100 linhas sem comentários e com nomes de variáveis pouco claros? Agora imagine tentar consertá-la sob pressão. Não é divertido.

Entenda a ordem de processamento do SQL

Você pode escrever o SQL de cima para baixo, mas o banco de dados não o lê dessa forma. Aqui está a ordem real que ele segue:

  1. FROM
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. ORDER BY
  7. LIMIT

Entender isso o ajuda a estruturar sua lógica e a identificar erros com mais facilidade.

Divida as consultas longas em partes (usando CTEs)

Em vez de amontoar tudo em uma consulta longa, use CTEs (Common Table Expressions) para dividir a lógica em etapas gerenciáveis.

Aqui está uma versão usando uma subconsulta:

SELECT *
FROM (
  SELECT customer_id, COUNT(*) AS order_count
  FROM orders
  GROUP BY customer_id
) AS subquery
WHERE order_count > 5;

Agora, aqui está a mesma lógica usando um CTE:

WITH orders_cte AS (
  SELECT customer_id, COUNT(*) AS order_count
  FROM orders
  GROUP BY customer_id
)
SELECT *
FROM orders_cte
WHERE order_count > 5;

Essa versão é mais fácil de acompanhar. Ela conta a história passo a passo e torna seu código mais fácil de reutilizar, testar e manter.

Use todas as letras maiúsculas para palavras-chave SQL

Colocar palavras-chave como SELECT, FROM e WHERE em maiúsculas ajuda a destacá-las e melhora a legibilidade. Essa é uma prática comum que facilita a verificação das consultas.

Indentar seu código

A indentação mostra como as diferentes partes da consulta se relacionam entre si. Quando você usa subconsultas ou lógica complexa, a indentação deixa a estrutura clara. Compare estes exemplos:

Sem indentação:

SELECT customer_id FROM (SELECT customer_id, COUNT(*) AS total_orders FROM orders GROUP BY customer_id) AS subquery WHERE total_orders > 5;

Com indentação:

SELECT customer_id
FROM (
    SELECT customer_id, COUNT(*) AS total_orders
    FROM orders
    GROUP BY customer_id
) AS subquery
WHERE total_orders > 5;

Uma cláusula por linha

Dividir as consultas em linhas separadas para cada cláusula (SELECT, FROM, WHERE, etc.) facilita a verificação e a depuração:

SELECT customer_id,
       COUNT(*) AS order_count
FROM orders
WHERE status = 'delivered'
GROUP BY customer_id;

Use aliases significativos

Evite aliases curtos e vagos como a, b, ou t1. Em vez disso, use aliases que descrevam o que é a tabela:

SELECT o.customer_id
FROM orders AS o

Ou melhor ainda:

SELECT orders.customer_id
FROM orders

Use aliases somente quando necessário e certifique-se de que eles ajudem, não confundam.

Use AS para renomear colunas

Se estiver criando novas colunas, como totais ou médias, use AS para dar nomes claros a elas:

SELECT COUNT(*) AS total_orders

Isso facilita a compreensão dos resultados e mantém o resultado claro e profissional.

Evite SELECT *

Obter todas as colunas usando SELECT * pode parecer fácil, mas pode causar problemas:

  • Inclui dados desnecessários ou confidenciais
  • Torna suas consultas mais lentas
  • Torna seu código mais difícil de entender e manter

Em vez disso, liste as colunas de que você realmente precisa:

SELECT customer_id, order_date, total_amount
FROM orders

Adicionar comentários úteis

Use o endereço -- para adicionar comentários no SQL. Os comentários explicam por que sua consulta faz algo, o que geralmente é mais útil do que o que ela faz.

Exemplo:

-- Only show active customers who ordered in the last 30 days
WHERE customer_status = 'active'
  AND order_date >= CURRENT_DATE - INTERVAL '30 days'

Os comentários são como anotações para seu futuro eu - ou para a próxima pessoa que estiver trabalhando na consulta.

Use índices quando necessário

Se você costuma filtrar ou unir dados por uma coluna específica, essa coluna pode se beneficiar de um índice. Os índices ajudam o banco de dados a encontrar dados mais rapidamente. Se não tiver certeza de quais colunas estão indexadas, pergunte ao administrador do banco de dados ou verifique o esquema.

Não se repita

Se estiver calculando algo complexo, faça-o uma vez e reutilize-o - não repita a lógica. Os CTEs são perfeitos para isso:

WITH order_totals AS (
  SELECT customer_id, SUM(total_amount) AS total_spent
  FROM orders
  GROUP BY customer_id
)
SELECT *
FROM order_totals
WHERE total_spent > 1000;

Use ferramentas que ajudem

Aqui estão algumas ferramentas para iniciantes que podem facilitar a escrita de SQL:

  • Formatador de SQL - Limpa automaticamente seu código com espaçamento e estrutura adequados. Experimente um no VS Code ou em seu editor de SQL favorito.
  • Embelezadores on-line - Sites como o org permitem que você cole consultas confusas e receba de volta uma versão limpa instantaneamente.
  • SQL Linters - Essas ferramentas verificam se há erros ou formatação inconsistente em suas consultas e sugerem melhorias. São ótimas para aprender as práticas recomendadas à medida que você avança.

O uso dessas ferramentas ajuda você a criar hábitos melhores e a escrever SQL mais claro com mais rapidez.

Pronto para continuar aprendendo?

Você chegou até aqui - e isso já o coloca à frente do jogo. Se quiser continuar a desenvolver suas habilidades de forma prática e agradável, a melhor próxima etapa é a prática.

Aqui estão alguns recursos úteis do site LearnSQL.com.br:

Escolha uma consulta confusa do seu próprio trabalho e limpe-a usando o que você aprendeu. Em seguida, faça outra. Em breve, escrever SQL limpo e fácil de entender parecerá natural.