Article image

MA

Maria Amaral07/04/2025 14:02
Compartilhe

🧠Consultas SQL – Entendendo SELECT, FROM, WHERE e JOINs 📌

    Maria do Carmo Amaral

    Esta publicado no meu LinkedIn: https://www.linkedin.com/pulse/consultas-sql-entendendo-select-from-where-e-joins-amaral-r3gtf/

    Introdução 📘

    O SQL (Structured Query Language) é essencial para manipulação e análise de dados. Ele permite extrair, filtrar e combinar informações de diferentes tabelas em um banco de dados.

    Neste artigo, abordaremos os principais comandos do SQL: SELECT, FROM, WHERE, JOINs e também o UNION, explicando como utilizá-los de forma eficiente.

    O que é SQL? 💡

    Imagine que você tem uma grande biblioteca cheia de livros (o banco de dados). Em vez de procurar livro por livro, você pode perguntar para um bibliotecário (o SQL), que te dá a resposta rapidamente! O SQL é a linguagem utilizada para pedir informações ao banco de dados. Vamos aprender alguns comandos básicos!

    SELECT e FROM – Buscando Dados em uma Tabela 🔍

    • 📌 SELECT: Define quais colunas queremos visualizar.
    • 📌 FROM: Indica de qual tabela os dados serão extraídos.

    Exemplo:

    SELECT nome, idade FROM clientes;

    Dica: Selecione apenas os campos necessários para evitar sobrecarga.

    WHERE – Filtrando Resultados ⚙️🎯

    • 🎯 A cláusula WHERE permite definir condições para os registros que serão retornados.

    Exemplo:

    SELECT nome, idade FROM clientes WHERE idade > 30;

    ORDER BY – Ordenação dos Resultados ⬇️

    • 📈 A cláusula ORDER BY permite organizar os dados em ordem crescente (ASC) ou decrescente (DESC).

    Exemplo:

    SELECT nome, idade FROM alunos ORDER BY idade ASC;

    GROUP BY e HAVING – Agrupamento de Dados 🧮

    • 🧮 GROUP BY: Agrupa registros com valores semelhantes.
    • 🧮 HAVING: Filtra os grupos de dados.

    Exemplo:

    SELECT idade, COUNT(*) FROM alunos GROUP BY idade HAVING COUNT(*) > 2;

    LIMIT – Limitando Resultados 🛑

    • 🛑 A cláusula LIMIT restringe o número de registros retornados.

    Exemplo:

    SELECT nome, idade FROM alunos LIMIT 5;

    Mostrar apenas os 5 primeiros alunos.

    Formatando Resultados com CASE WHEN🛠️

    • 🛠️ A expressão CASE WHEN permite definir diferentes valores com base em condições.

    Exemplo:

    SELECT nome, salario,

    CASE

    WHEN salario > 5000 THEN 'Alto'

    WHEN salario BETWEEN 3000 AND 5000 THEN 'Médio'

    ELSE 'Baixo'

    END AS categoria_salario

    FROM funcionarios;

    Vantagens do CASE WHEN:

    • 📌 Classifica dados sem alterar a estrutura do banco.
    • 📌 Exibe textos mais amigáveis em vez de números brutos.
    • 📌 Evita criar colunas desnecessárias.

    Funções no SELECT ⚙️

    As funções ajudam a modificar ou calcular valores na consulta.

    Funções Matemáticas

    • ➕ Média de idade:

    SELECT AVG(idade) FROM alunos;

    • ➖ Idade mínima e máxima:

    SELECT MIN(idade), MAX(idade) FROM alunos;

    Funções de Texto

    • 🔠 Converter para maiúsculas:

    SELECT UPPER(nome) FROM alunos;

    • ✂️ Mostrar apenas os 3 primeiros caracteres:

    SELECT LEFT(nome, 3) FROM alunos;

    • 🔗 Concatenar nome e sobrenome:

    SELECT CONCAT(nome, ' ', sobrenome) AS nome_completo FROM alunos;

    • 🧬 Substituir parte do texto:

    SELECT REPLACE(nome, 'a', '@') FROM alunos;

    Funções de Data

    • 📆 Mostrar a data atual:

    SELECT NOW();

    • 🕓 Mostrar apenas a data sem horário:

    SELECT CURRENT_DATE();

    • 👶 Calcular idade com base na data de nascimento:

    SELECT nome, TIMESTAMPDIFF(YEAR, data_nascimento, CURDATE()) AS idade FROM alunos;

    JOINs – Combinando Dados de Múltiplas Tabelas 🔗

    • 🔗 Os JOINs permitem combinar informações de diferentes tabelas.

    Principais tipos de JOIN:

    • 🔍 INNER JOIN: traz apenas registros correspondentes
    • 👈 LEFT JOIN: todos os registros da tabela da esquerda + correspondentes da direita
    • 👉 RIGHT JOIN: todos os registros da tabela da direita + correspondentes da esquerda
    • 🔄 FULL JOIN: todos os registros de ambas as tabelas

    📌INNER JOIN – Apenas registros correspondentes

    SELECT alunos.nome, turmas.nome_turma

    FROM alunos

    INNER JOIN turmas ON alunos.turma_id = turmas.id;

    📌LEFT JOIN – Todos os registros da esquerda + correspondências da direita

    SELECT alunos.nome, turmas.nome_turma

    FROM alunos

    LEFT JOIN turmas ON alunos.turma_id = turmas.id;

    Se um aluno não tiver turma, a coluna nome_turma aparecerá como NULL.

    📌RIGHT JOIN – Todos os registros da direita + correspondências da esquerda

    SELECT alunos.nome, turmas.nome_turma

    FROM alunos

    RIGHT JOIN turmas ON alunos.turma_id = turmas.id;

    Se uma turma não tiver alunos, a coluna nome aparecerá como NULL.

    📌FULL JOIN – Todos os registros, mesmo sem correspondência

    SELECT alunos.nome, turmas.nome_turma

    FROM alunos

    FULL JOIN turmas ON alunos.turma_id = turmas.id;

    📌📌O MySQL não suporta FULL JOIN diretamente. É possível simulá-lo com UNION:

    SELECT alunos.nome, turmas.nome_turma

    FROM alunos

    LEFT JOIN turmas ON alunos.turma_id = turmas.id

    UNION

    SELECT alunos.nome, turmas.nome_turma

    FROM alunos

    RIGHT JOIN turmas ON alunos.turma_id = turmas.id;

    📌CROSS JOIN – Produto Cartesiano

    SELECT alunos.nome, turmas.nome_turma

    FROM alunos

    CROSS JOIN turmas;

    Se alunos tiver 10 registros e turmas tiver 5, o resultado terá 10 × 5 = 50 registros.

    O que é OUTER JOIN no SQL? 🔄

    • 🌐 OUTER JOINs retornam todos os registros de uma tabela, mesmo sem correspondência na outra.
    • 🌐 LEFT OUTER JOIN = LEFT JOIN
    • 🌐 RIGHT OUTER JOIN = RIGHT JOIN
    • 🌐 FULL OUTER JOIN = FULL JOIN

    UNION – Combinando Resultados de Múltiplas Consultas 📌

    • 🔀 O UNION é usado para combinar os resultados de duas ou mais consultas sem repetir valores.

    Exemplo:

    SELECT nome FROM alunos

    UNION

    SELECT nome FROM professores;

    Se houver nomes repetidos entre alunos e professores, o SQL retornará apenas um.

    Para incluir repetições, use UNION ALL:

    SELECT nome FROM alunos

    UNION ALL

    SELECT nome FROM professores;

    📌O que é e para que serve o USING no SQL? 📌

    O USING simplifica JOINs quando as tabelas possuem colunas de mesmo nome.

    Exemplo com USING:

    SELECT clientes.nome, pedidos.produto

    FROM clientes

    INNER JOIN pedidos USING (id_cliente);

    Se os nomes das colunas forem diferentes, use ON:

    SELECT clientes.nome, pedidos.produto

    FROM clientes

    INNER JOIN pedidos ON clientes.id_cliente = pedidos.cliente_id;

    • ✅ USING → Quando as colunas têm o mesmo nome nas duas tabelas.
    • ✅ ON → Quando as colunas têm nomes diferentes ou precisam de uma condição mais específica.

    O SQL Server não suporta USING – sempre use ON.

    📌Conclusão 🧠🔚

    As cláusulas ajudam a organizar e filtrar os dados no SELECT. As funções permitem modificar, calcular ou transformar os valores retornados. Os JOINs e UNION combinam dados de diferentes tabelas para obter informações completas.

    Compreender bem esses comandos transforma a maneira como você interage com os dados. Desde uma simples filtragem até análises mais avançadas com junções e agregações, o SQL é um verdadeiro superpoder para quem trabalha com dados.

    E você? Qual comando SQL você mais usa no seu dia a dia? Comenta aqui!

    #SQL #Dados #AnáliseDeDados #BusinessIntelligence #DataScience #SQLTips #JOINs #FunçõesSQL #CaseWhen #LinkedInLearning #SQLparaTodos #TechTips

    Fontes consultadas 📚🔍🧠

    Compartilhe
    Comentários (1)
    DIO Community
    DIO Community - 07/04/2025 15:04

    Maria, seu artigo sobre consultas SQL está excelente! Você fez uma ótima explicação sobre os conceitos fundamentais, como SELECT, FROM, WHERE, JOINs, e até o uso de funções para transformar e calcular dados.

    A clareza ao descrever os diferentes tipos de JOIN e a aplicação de comandos como CASE WHEN e UNION é muito útil para quem está começando ou para aqueles que desejam aprofundar seu conhecimento. Gosto especialmente de como você explicou o uso de USING e ON em JOINs, facilitando a compreensão dos casos onde um ou outro deve ser usado.

    Em relação à sua experiência prática, você mencionou o uso de ferramentas como o Bootcamp. Como você percebe que o aprendizado de SQL é aplicável ao trabalhar com IA e grandes volumes de dados? Quais foram os maiores desafios ao integrar SQL em projetos de dados mais complexos?