Consultas Básicas
Dominando as Consultas Básicas
Bem-vindo ao mundo do SQL Server! Se você está começando na área de dados ou desenvolvimento, aprender SQL é como aprender o alfabeto para escrever um livro. Sem ele, você não consegue conversar com os bancos de dados. Nesta primeira parte da nossa série, focaremos nos comandos que formam a espinha dorsal de qualquer análise de dados: a extração de informações.
O SQL (Structured Query Language) é desenhado para ser intuitivo e quase como um "inglês estruturado". Vamos desmistificar os principais comandos para extração de dados usando exemplos do dia a dia.
O Básico: SELECT e FROM
Tudo no SQL começa perguntando "O que eu quero?" e "De onde?".
- SELECT: Define quais colunas você deseja visualizar.
- FROM: Define de qual tabela os dados serão extraídos.
Caso de Uso: Você precisa de uma lista com os nomes e e-mails de todos os clientes da loja.
SELECT NomeCliente, Email
FROM Clientes;
Se quiser trazer todas as colunas da tabela de uma vez, usamos o asterisco (*):
SELECT * FROM Clientes;
Filtrando Dados: WHERE
Geralmente, não queremos ver a base de dados inteira. O comando WHERE aplica filtros aos resultados.
Caso de Uso: Trazer apenas os clientes que moram em "São Paulo".
SELECT NomeCliente, Email
FROM Clientes
WHERE Cidade = 'São Paulo';
Conectando Informações: JOINS e CROSS APPLY
Raramente todas as informações úteis estão em uma única tabela. Os JOINS servem para unir tabelas com base em uma relação entre elas.
- INNER JOIN: Traz apenas os registros que existem em ambas as tabelas.
- LEFT JOIN: Traz todos os registros da primeira tabela, mesmo que não haja correspondência na segunda.
Caso de Uso: Queremos ver o nome do cliente e os detalhes de seus pedidos.
SELECT C.NomeCliente, P.DataPedido, P.ValorTotal
FROM Clientes C
INNER JOIN Pedidos P ON C.IDCliente = P.IDCliente;
O CROSS APPLY é um recurso muito poderoso (e particular) do SQL Server, frequentemente usado em conjunto com funções (Table-Valued Functions) para aplicar uma lógica linha a linha.
SELECT C.NomeCliente, UltimoPedido.DataPedido
FROM Clientes C
CROSS APPLY (
SELECT TOP 1 DataPedido
FROM Pedidos P
WHERE P.IDCliente = C.IDCliente
ORDER BY DataPedido DESC
) AS UltimoPedido;
Agrupando e Agregando: GROUP BY, SUM, AVG e COUNT
Para realizar análises métricas, agrupamos informações e calculamos totais.
- COUNT: Conta a quantidade de linhas.
- SUM: Soma os valores de uma coluna.
- AVG: Calcula a média (Average).
Caso de Uso: Precisamos saber quantos clientes temos por cidade e o total que eles já gastaram.
SELECT Cidade,
COUNT(IDCliente) AS TotalClientes,
SUM(TotalGasto) AS Faturamento,
AVG(TotalGasto) AS TicketMedio
FROM Clientes
GROUP BY Cidade;
Filtros Pós-Agrupamento: HAVING
O WHERE filtra os dados antes do agrupamento. Se precisarmos filtrar dados após o agrupamento (ex: apenas cidades com mais de 10 clientes), usamos o HAVING.
SELECT Cidade, COUNT(IDCliente) AS TotalClientes
FROM Clientes
GROUP BY Cidade
HAVING COUNT(IDCliente) > 10;
Organizando o Resultado: ORDER BY
Para definir a ordem de exibição, utilizamos o ORDER BY, que pode ser ascendente (ASC, padrão) ou descendente (DESC).
SELECT NomeCliente, Cidade
FROM Clientes
ORDER BY Cidade ASC, NomeCliente DESC;
Conclusão
Com os comandos acima, você já tem o arsenal necessário para criar desde relatórios simples até dashboards complexos de BI. Na próxima parte, deixaremos de apenas visualizar dados e começaremos a inserir novas informações usando o comando INSERT.
Glossário de Termos
- SQL (Structured Query Language): Linguagem padrão utilizada para se comunicar com bancos de dados relacionais.
- SELECT: Comando utilizado para escolher quais colunas você deseja visualizar no resultado.
- FROM: Comando que indica a tabela de origem de onde os dados serão lidos.
- WHERE: Cláusula utilizada para aplicar filtros aos dados, retornando apenas as linhas que atendem a uma condição específica.
- JOINS (INNER JOIN, LEFT JOIN): Comandos utilizados para conectar e cruzar dados de duas ou mais tabelas diferentes.
- CROSS APPLY: Operador avançado do SQL Server que permite cruzar uma tabela com uma função ou subconsulta que é avaliada linha a linha.
- GROUP BY: Comando utilizado para agrupar linhas que têm os mesmos valores, permitindo aplicar cálculos como soma (SUM) ou contagem (COUNT).
Referências
- BEN-GAN, Itzik. (2016). T-SQL Fundamentals. Microsoft Press.
- MICROSOFT. Documentação oficial do Transact-SQL. Disponível no site oficial da Microsoft.