Aula 08: JOINs - Junções 🔗
Conectando os Pontos
Ricardo Pires
Bancos de Dados SQL e NoSQL
🎯 O que vamos aprender hoje?
- Por que unir tabelas?
- INNER JOIN (O feijão com arroz)
- LEFT e RIGHT JOIN (Prioridades)
- FULL e CROSS JOIN
- A importância da cláusula ON
- Aliases para tabelas
🤝 Por que JOINs?
- Bancos de Dados são Relacionais
- Os dados estão em "caixas" diferentes
- Precisamos da "ponte" para ver a foto completa! 📸
🎯 INNER JOIN
- O mais comum de todos.
- Retorna apenas onde há combinação nos dois lados.
📽️ Visualizando: INNER JOIN
graph TD
A[Tabela A] --- I((Interseção))
I --- B[Tabela B]
- Se o cliente não tem pedido, ele não aparece.
- Se o pedido não tem cliente, ele não aparece.
⬅️ LEFT JOIN
- Quer ver TUDO da primeira tabela?
- Mesmo que não haja par na segunda?
- Use o LEFT JOIN!
➡️ RIGHT JOIN
- Exatamente o oposto do Left.
- Prioriza quem está na Direita (a segunda tabela).
- Traz todos os pedidos, mesmo que o cliente tenha sido apagado.
🌐 FULL OUTER JOIN
- O "pacotão" completo.
- Traz tudo da esquerda e tudo da direita.
- Onde não houver par -> Preenche com
NULL.
❌ CROSS JOIN
- Perigoso! 🛑
- Combina cada linha de A com cada linha de B.
- Tabela A (10 linhas) x Tabela B (10 linhas) = 100 linhas no resultado.
🏷️ Aliases de Tabela
Não sofra escrevendo nomes gigantes.
- Atalhos que salvam vidas (e dedos)! ⌨️🔗 Unindo 3 ou Mais Tabelas
- Basta ir "pendurando" mais JOINs.
💻 Prática no pgAdmin
- Vamos descobrir quais alunos estão sem turmas.
- Qual tipo de JOIN usaríamos?
- LEFT JOIN entre Alunos e Turmas! 🎓
🚀 Dica Pro: Filtrando JOINs
- Você pode usar
WHEREnormalmente após os JOINs.
🏁 Resumo
- JOIN une o que está separado
INNER: InterseçãoLEFT: Prioridade EsquerdaRIGHT: Prioridade DireitaON: Onde elas se ligam