CodeGym /Cursos /SQL SELF /Introdução à junção de dados: JOIN

Introdução à junção de dados: JOIN

SQL SELF
Nível 11 , Lição 0
Disponível

Hoje a gente vai entrar em um dos assuntos mais legais quando se fala de bancos de dados relacionais — juntar dados de várias tabelas usando JOIN. É uma ferramenta poderosa que abre portas pra criar relações complexas e fazer análises maneiras.

Pensa que seu banco de dados é tipo um quadrinho gigante, onde cada tabela separada é um quadro diferente. Pra montar a história completa, você precisa juntar esses quadros. É aí que entra o JOIN. Juntar dados é o processo que permite que uma consulta pegue informação de várias tabelas e conecte tudo baseado em condições que você define.

Bancos de dados relacionais são construídos em cima da ideia de relações entre tabelas. Cada tabela guarda info sobre uma entidade específica, e pra ter uma visão mais completa, a gente geralmente quer conectar dados de tabelas diferentes. Por exemplo:

  • A tabela students tem a lista dos estudantes.
  • A tabela courses guarda a lista dos cursos.
  • A tabela enrollments mostra quem tá em qual curso.

Pra saber qual estudante tá em qual curso, a gente precisa juntar essas tabelas. Em entrevistas, quem manja de JOIN já passa uma vibe de profissional, porque é uma das skills mais procuradas pra quem trabalha com dados.

Tipos principais de junção

No PostgreSQL tem vários tipos de JOIN, e cada um serve pra uma situação diferente. Vamos ver eles de forma geral, sem complicar com exemplos difíceis agora:

Tipo de JOIN Descrição
INNER JOIN Retorna só as linhas que têm correspondência nas duas tabelas.
LEFT JOIN Retorna todas as linhas da tabela da esquerda, e da direita só as que batem.
RIGHT JOIN Retorna todas as linhas da tabela da direita, e da esquerda só as que batem.
FULL OUTER JOIN Retorna todas as linhas das duas tabelas, preenchendo com NULL onde não tem correspondência.

Qual JOIN usar depende do que você precisa:

  • Se você só quer os dados que batem nas duas tabelas, usa INNER JOIN.
  • Se quer manter todos os dados de uma tabela e só os que batem da outra, vai de LEFT JOIN ou RIGHT JOIN.
  • Se precisa de tudo das duas tabelas, mesmo que não bata, usa FULL OUTER JOIN.

Bora ver esses tipos de junção na prática.

Exemplo de problema — "Quem tá em qual curso?"

Imagina que a gente tem três tabelas:

Tabela students

id name
1 Otto
2 Anna
3 Peter

Tabela courses

id title
101 Matemática
102 Inglês

Tabela enrollments

student_id course_id
1 101
2 102

Essas tabelas se conectam assim:

  • O campo id em students é o identificador único do estudante.
  • O campo id em courses é o identificador único do curso.
  • Na tabela enrollments, as colunas student_id e course_id fazem a ligação entre estudantes e cursos.

Vamos supor que a gente quer saber: qual estudante tá matriculado em qual curso?

Dá pra responder isso usando JOIN. A gente vai juntar as tabelas usando as relações delas:

  • Junta students e enrollments pelo id = student_id.
  • Junta enrollments e courses pelo course_id = id.

O SQL vai ficar assim:

SELECT students.name, courses.title
FROM enrollments
JOIN students ON enrollments.student_id = students.id
JOIN courses ON enrollments.course_id = courses.id;

O que esse SQL faz:

  • FROM enrollments — começa pela tabela que liga estudantes e cursos.
  • JOIN students ON enrollments.student_id = students.id — junta os estudantes pra pegar os nomes.
  • JOIN courses ON enrollments.course_id = courses.id — junta os cursos pra pegar os títulos.

O resultado vai ser assim:

name title
Otto Matemática
Anna Inglês

Repara: se um estudante não tiver nenhum curso, ele não aparece no resultado — porque o JOIN padrão é o estrito (INNER JOIN). Depois a gente vai ver como incluir esses estudantes usando LEFT JOIN.

Se ficou alguma dúvida nesse SQL, relaxa! O objetivo das próximas aulas é justamente te ajudar a entender tudo isso aos poucos!

Pra que serve isso na vida real?

Agora que você já entendeu como juntar tabelas, bora falar do mundo real. Já pensou como funciona uma loja online? Tipo, quando você escolhe um smartphone e vê os comentários de outros usuários.

  1. A tabela products tem as infos dos produtos.
  2. A tabela reviews tem os comentários dos clientes.
  3. A tabela customers tem as infos dos próprios clientes.

Pra mostrar os comentários no site, tem que juntar as tabelas products, reviews e customers. Isso é o JOIN funcionando na prática.

No que prestar atenção?

Antes da gente se aprofundar em JOIN nas próximas aulas, se liga nesses pontos:

  1. A ordem no JOIN importa. Por exemplo, LEFT JOIN retorna as linhas da tabela da esquerda, então se você trocar a ordem, muda o resultado.
  2. Trabalhe com tabelas pequenas. No começo, evita consultar milhões de linhas. Lembra: até a consulta mais simples tem que ser fácil de entender.
  3. Pense sempre nas relações. Quando você acostumar a ver as tabelas como partes de uma estrutura maior, trabalhar com JOIN vai ficar natural.

A partir de hoje, a gente começa a virar especialista em SQL. Na próxima aula você vai aprender a usar INNER JOIN pra buscar dados de duas tabelas. Vai ser um passo importante no seu aprendizado de PostgreSQL.

2
Tarefa
SQL SELF, nível 11, lição 0
Bloqueado
Usando COALESCE para tratar valores NULL em linhas
Usando COALESCE para tratar valores NULL em linhas
2
Tarefa
SQL SELF, nível 11, lição 0
Bloqueado
Cálculo do preço médio com condição e tratamento de NULL
Cálculo do preço médio com condição e tratamento de NULL
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION