Educadados Ver os cursos →
Guia de SQL

Como aprender SQL para análise de dados: roteiro do zero

Para aprender SQL para análise de dados, siga esta ordem: SELECT e filtros, ordenação, agregação com GROUP BY, JOIN entre tabelas, subconsultas, CTEs e, por fim, funções de janela. Pratique cada etapa respondendo perguntas de negócio em uma base real e feche com um projeto para o portfólio. Não é preciso saber programar.

Felipy Morais
Por Felipy MoraisAnalista e engenheiro de dados, certificado Microsoft PL-300, DP-600 e DP-700

Publicado em · Atualizado em

Por que aprender SQL?

SQL (Structured Query Language) é a linguagem usada para consultar bancos de dados. Quase toda empresa guarda vendas, clientes, estoque e finanças em um banco relacional, e o SQL é o jeito direto de buscar essas informações sem depender de alguém exportar planilha.

Para quem quer virar analista de dados, SQL é uma das habilidades mais pedidas nas vagas e quase sempre aparece no teste técnico. Ele também é base para engenharia de dados, ciência de dados e para usar Power BI de forma mais profissional. E é uma linguagem que muda pouco: o que você aprende hoje continua valendo daqui a muitos anos.

Roteiro para aprender SQL em 7 etapas

Os exemplos usam duas tabelas simples de uma loja: pedidos (id, cliente_id, data_pedido, valor, status) e clientes (id, nome, cidade, estado).

1. SELECT: buscar colunas

O primeiro comando. Você diz quais colunas quer e de qual tabela. Aprenda também apelidos (AS), DISTINCT para valores únicos e LIMIT/TOP para ver só algumas linhas.

SELECT nome, cidade, estado
FROM clientes;

2. WHERE e ORDER BY: filtrar e ordenar

Filtre linhas com operadores de comparação, AND, OR, IN, BETWEEN, LIKE e IS NULL. Ordene com ORDER BY. Aqui você já responde perguntas reais.

SELECT id, data_pedido, valor
FROM pedidos
WHERE status = 'entregue'
  AND data_pedido >= '2026-01-01'
ORDER BY valor DESC;

3. Agregação: GROUP BY e HAVING

Funções COUNT, SUM, AVG, MIN e MAX, agrupadas por uma ou mais colunas. HAVING filtra depois de agrupar (WHERE filtra antes). É a base de qualquer indicador.

SELECT status, COUNT(*) AS qtd_pedidos, SUM(valor) AS faturamento
FROM pedidos
GROUP BY status
HAVING COUNT(*) > 100;

4. JOIN: juntar tabelas

A etapa mais importante. Entenda INNER JOIN (só o que existe nas duas tabelas), LEFT JOIN (tudo da esquerda, mesmo sem par) e como uma chave errada duplica linhas. Pratique bastante: é o que mais cai em teste técnico.

SELECT c.estado, SUM(p.valor) AS faturamento
FROM pedidos p
INNER JOIN clientes c ON c.id = p.cliente_id
WHERE p.status = 'entregue'
GROUP BY c.estado
ORDER BY faturamento DESC;

Junto com o JOIN, aprenda CASE WHEN (criar categorias), funções de texto e de data e o tratamento de nulos com COALESCE.

5. Subconsultas

Uma consulta dentro de outra, usada em WHERE, FROM ou SELECT. Exemplo: clientes que compraram acima da média.

SELECT cliente_id, SUM(valor) AS total
FROM pedidos
GROUP BY cliente_id
HAVING SUM(valor) > (SELECT AVG(valor) FROM pedidos);

6. CTE: consultas legíveis com WITH

A CTE (Common Table Expression) dá nome a uma etapa da consulta. Em vez de subconsultas aninhadas difíceis de ler, você escreve o raciocínio em partes. É muito usada no dia a dia e valorizada em entrevistas.

WITH total_por_cliente AS (
    SELECT cliente_id, SUM(valor) AS total
    FROM pedidos
    WHERE status = 'entregue'
    GROUP BY cliente_id
)
SELECT c.nome, t.total
FROM total_por_cliente t
JOIN clientes c ON c.id = t.cliente_id
ORDER BY t.total DESC;

7. Funções de janela

Calculam algo olhando para outras linhas sem agrupar o resultado: ranking (ROW_NUMBER, RANK, DENSE_RANK), acumulados (SUM OVER), comparação com o período anterior (LAG, LEAD) e médias móveis. É o que separa o SQL básico do SQL de analista experiente.

SELECT cliente_id, data_pedido, valor,
       ROW_NUMBER() OVER (PARTITION BY cliente_id ORDER BY data_pedido) AS n_compra,
       LAG(data_pedido) OVER (PARTITION BY cliente_id ORDER BY data_pedido) AS compra_anterior
FROM pedidos;

Resumo do roteiro

EtapaComandos principaisPergunta que você já consegue responder
1. SeleçãoSELECT, FROM, AS, DISTINCTQuais cidades temos clientes?
2. FiltrosWHERE, IN, BETWEEN, LIKE, ORDER BYQuais foram os maiores pedidos de janeiro?
3. AgregaçãoCOUNT, SUM, AVG, GROUP BY, HAVINGQuanto faturamos por mês?
4. JOININNER, LEFT JOIN, CASE WHEN, COALESCEQual estado mais compra?
5. SubconsultaSELECT dentro de WHERE/FROMQuem comprou acima da média?
6. CTEWITH ... ASQual o ticket médio dos 10 maiores clientes?
7. JanelaROW_NUMBER, RANK, LAG, SUM OVERQuanto tempo o cliente leva entre uma compra e outra?

Depois do roteiro, vale conhecer o básico de criação e alteração de dados (CREATE TABLE, INSERT, UPDATE), views e índices. Para análise de dados, porém, o foco está nas consultas.

Onde praticar SQL

Uma regra simples: para cada aula assistida, resolva pelo menos cinco perguntas sozinho. SQL se aprende escrevendo, não assistindo.

Projeto de SQL para o portfólio

Um bom projeto de SQL mostra que você sabe sair da pergunta de negócio até a resposta. Sugestão: análise de clientes de uma loja online.

  1. Escolha uma base com pelo menos pedidos, clientes e produtos.
  2. Escreva 8 a 10 perguntas de negócio: faturamento por mês, produtos mais vendidos, ticket médio por estado, clientes que não compram há 90 dias, tempo médio entre compras, ranking de produtos por categoria.
  3. Responda cada pergunta com uma consulta, usando JOIN, CTE e funções de janela onde fizer sentido.
  4. Documente no GitHub: a pergunta, a consulta comentada, o resultado e uma frase de conclusão.
  5. Feche com recomendações: o que a loja deveria fazer com base nos números.
  6. Bônus: leve o resultado para um dashboard no Power BI (veja como aprender Power BI).

Erros comuns de quem está aprendendo SQL

Curso de SQL

Quer aprender SQL com aulas, bases reais e exercícios corrigidos na hora no navegador? O curso de SQL para análise de dados da Educadados vai das primeiras consultas às funções de janela.

Conhecer o curso de SQL

O curso também faz parte da Formação Analista de Dados, com Power BI, Python, Excel e Estatística.

Perguntas frequentes

SQL é difícil de aprender?

Não. SQL é uma das linguagens mais fáceis de começar, porque os comandos parecem frases em inglês (SELECT, FROM, WHERE). A parte que exige mais prática é JOIN, subconsulta e funções de janela, que é justamente o que mais aparece em testes técnicos.

Preciso saber programar para aprender SQL?

Não. SQL é uma linguagem de consulta: você descreve o resultado que quer e o banco de dados decide como buscar. Não há laços, classes nem instalação complicada para começar.

Qual banco de dados usar para aprender SQL?

Qualquer um serve, porque o SQL básico é praticamente igual em todos. PostgreSQL e SQL Server são muito usados em empresas e têm versões gratuitas. SQLite é o jeito mais simples de começar sem instalar servidor. O importante é praticar com perguntas de negócio.

Qual a diferença entre SQL, MySQL, PostgreSQL e SQL Server?

SQL é a linguagem. MySQL, PostgreSQL, SQL Server, Oracle e SQLite são sistemas de banco de dados que usam essa linguagem, cada um com pequenas diferenças de funções e sintaxe. Quem aprende bem em um adapta rápido para os outros.

Quanto tempo leva para aprender SQL?

O básico (SELECT, filtros, ordenação e agregação) dá para aprender em poucas semanas de prática constante. Ficar confortável com JOIN, CTE e funções de janela leva mais tempo e depende de resolver muitos exercícios com bases reais.

SQL ainda vale a pena com a inteligência artificial?

Vale. A IA ajuda a escrever consultas mais rápido, mas quem não entende SQL não consegue saber se a consulta está certa, se o JOIN duplicou linhas ou se o filtro deixou dados de fora. Entender SQL é o que permite usar a IA com segurança.

Continue lendo

Felipy Morais

Sobre o autor

Felipy Morais é analista e engenheiro de dados com mais de 6 anos de experiência, certificado Microsoft PL-300, DP-600 e DP-700 e Databricks Fundamentals. É fundador e instrutor da Educadados. Conheça a trajetória.