Agora que você já conhece os benefícios do SQL e atua como analista de dados, engenheiro de dados ou cientista de dados, está por dentro dos diferentes dialetos de SQL, sabe importar dados e domina consultas básicas. Quer levar suas habilidades para o próximo nível? Veja como.
Conceitos intermediários de SQL
Conheça as sublinguagens do SQL
Existem cinco sublinguagens principais no SQL—elas se referem a tarefas diferentes, mas fazem parte da mesma linguagem:
1. DDL (Data Definition Language)
Essas instruções são usadas para criar tabelas e bancos de dados e definir propriedades de campos ou de tabelas. Exemplos de comandos nessa categoria: CREATE, ALTER e DROP.
2. DML (Data Manipulation Language)
As instruções dessa categoria são usadas para atualizar dados, além de incluir ou remover dados das tabelas. Comandos típicos: UPDATE, DELETE e INSERT.
3. DCL (Data Control Language)
Essas instruções controlam quem acessa os dados. Os comandos mais comuns são GRANT e REVOKE.
4. TCL (Transaction Control Language)
Utilizada para confirmar e reverter transações. COMMIT e ROLLBACK se enquadram nessa categoria.
5. DQL (Data Query Language)
Usada para recuperar dados do servidor SQL. A instrução SELECT faz parte dessa categoria.
Pode parecer intimidador, mas calma! SQL é uma linguagem elegante e direta, especialmente porque você não cria visualizações com SQL—o foco é criar tabelas, organizar e limpar dados e aprender a fazer as perguntas certas.
Unions e joins
Muitas vezes, os dados de que você precisa não estarão em uma única tabela enorme, e sim espalhados por várias tabelas. Com SQL, você pode juntar essas tabelas e concentrar tudo em um só lugar. Como UNION e JOIN trabalham com tabelas, aparecem na cláusula FROM.
UNION basicamente empilha duas tabelas com colunas idênticas, uma sobre a outra. Isso é útil para dados de vendas divididos em tabelas por mês, trimestre ou ano.
Há vários tipos comuns de JOIN—Inner, Outer, Left e Exception. Em resumo, eles retornam diferentes combinações de linhas das tabelas envolvidas.
Recursos adicionais:
Sintaxe intermediária de SQL
Neste ponto, você já domina o básico da sintaxe SQL, incluindo SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY e LIMIT. Você entende de Database Design e também o order of execution do SQL—ou seja, que as consultas são escritas de um jeito e processadas de outro.
Agora é hora de aprender sintaxe mais avançada.
Agregações: SELECT, GROUP BY e HAVING
Assim como no Excel, você pode usar SQL para agregar seus dados por soma, média, máximo, mínimo e contagem. Agregações ajudam na exploração inicial, na análise e também na apresentação dos resultados. Você pode fazer isso na cláusula SELECT para retornar uma agregação simples, ou usar GROUP BY para criar um "tabela dinâmica" ao estilo Excel com seus dados.
Usar agregações em SELECT retorna apenas um cálculo simples. Por exemplo, se você usar SUM(column_name), sua consulta retorna um valor que representa a soma de todos os valores daquela coluna.
Você também pode agregar por categorias. Se você tiver uma tabela de vendas de frutas pelo país, pode agrupar a soma de todas as vendas por tipo de produto, ou a média de preço por estado. Isso exige uma cláusula GROUP BY, que vem depois de WHERE. É preciso indicar a coluna categórica pela qual as agregações serão "agrupadas" e incluir essas colunas também no SELECT.
Depois que os dados estiverem agrupados, com uma agregação associada a uma variável categórica, você pode filtrar essas agregações com HAVING, que vem após GROUP BY. Isso é útil para refinar ainda mais a consulta. Por exemplo, selecionar apenas as lojas de frutas com média de vendas acima de US$ 100.000.
Recursos adicionais:
- SQL | String Functions | GeeksforGeeks
- SQL Aggregate Functions | Mode
- SQL GROUP BY | W3 Schools
- SQL HAVING | TutorialsPoint
Instruções CASE
Uma instrução CASE em SQL é semelhante à função IF() do Excel—se o dado em uma coluna atender a um critério, então retorne "isso". É útil para reclassificar dados quantitativos em categorias, como dividir valores em "Alto", "Médio" ou "Baixo". As instruções CASE vão em SELECT.
Veja também:
Subqueries
Subconsultas podem ser usadas de várias formas, mas geralmente aparecem em FROM ou WHERE. Elas criam uma pequena tabela temporária a partir dos seus dados, que você pode usar como uma nova tabela para consultar de outra maneira.
Veja também:
Datas e horários
Como em muitas outras linguagens de dados, trabalhar com datas e horários pode ser complicado. Às vezes, datas se comportam como "strings" (textos). Em outras, podem ser tratadas como datas de fato, com funções SQL que quebram a informação em unidades como meses ou anos. Como há várias maneiras de lidar com isso, essas funções são consideradas sintaxe SQL mais avançada.
Veja também:
Evolua seu pensamento em SQL
Boas práticas de SQL
No dia a dia, perguntas de negócio raramente se traduzem diretamente em consultas SQL. Por isso, vale avaliar com cuidado o que é necessário antes de escrever uma linha de código. Aqui vão algumas diretrizes úteis para praticar SQL.
Reescreva a pergunta de negócio como comentário primeiro
Use comentários no código para "pensar alto" sobre sua consulta—qual pergunta você quer responder? Em que partes e elementos precisa focar? Isso vai orientar seu SQL.
Existem dois tipos de comentários: inline e multilinha.
--Inline são dois hifens na frente e ficam em uma linha só—ótimos para observações rápidas
/*Comentários multilinha ficam assim.
São ótimos para criar blocos explicando objetivo da consulta, autor etc*/
Rascunhe sua consulta
Antes de digitar, defina os blocos de que você vai precisar. Você sempre terá SELECT e FROM—mas o que mais? Precisa filtrar com WHERE? Vai usar funções de agregação?
Entenda diferentes formas de alcançar o objetivo
Quando possível, tente ter mais de uma forma de chegar ao mesmo resultado. Assim, você checa a qualidade e valida se obtém o mesmo número. Por exemplo, dá para encontrar o maior valor de uma coluna usando MAX() no SELECT, ou ordenando com ORDER BY e depois usando LIMIT para retornar só uma linha.
Teste sua consulta
Monte a consulta linha a linha e rode com frequência para garantir que está funcionando. Adicionar partes aos poucos evita ter que revisar tudo, caso algo dê errado.
Faça o perfil da sua tabela
Para começar a consultar, entenda primeiro os elementos de dados. Comece visualizando todo o banco; depois, algumas colunas por vez. Descubra a faixa de valores, categóricos e quantitativos, para entender melhor o que a tabela contém.
Mantenha uma lista de premissas
Ao escrever qualquer código de dados, registre as premissas para rastrear limitações e dependências com facilidade.
Mantenha um dicionário de dados
Compile um repositório central dos elementos de dados usados, com descrições das tabelas e campos empregados na análise. Inclua os tipos de dados de cada coluna (caractere, inteiro, moeda, data etc.) e uma breve descrição do próprio campo.
Reserve tempo para verificações de qualidade dos dados
A análise não termina quando você finaliza a consulta. É preciso interpretar os resultados e fazer checagens de qualidade para garantir que estão corretos. Tente caminhos alternativos para chegar ao mesmo resultado e veja se muda algo—nessa hora, comentários inline também ajudam muito!
Pratique em um sandbox
Uma das melhores formas de aprender qualquer linguagem é brincar em um "sandbox". Você testa seu código, vê se roda, ajusta, roda de novo, até se sentir seguro com os princípios e a sintaxe. No começo, ter mais direcionamento pode ajudar—procure um projeto com instruções claras e solução para conferir seu trabalho.
Alguns bons recursos para praticar:
Por hoje é isso. Espero que tenha sido útil—continue praticando e aprendendo!


