Carregando
0x40Lição 5 de 9

Conecte tabelas com JOIN

Combine linhas relacionadas e veja o que ocorre quando falta correspondência.

12 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Escolher entre INNER JOIN e LEFT JOIN para cada pergunta.

JOIN combina linhas conforme relacionamento entre tabelas. INNER JOIN retorna apenas correspondências nos dois lados. LEFT JOIN mantém todas as linhas da tabela à esquerda e preenche colunas da direita com NULL quando não há match.

SQL example
1SELECT customers.name, orders.order_id, orders.total
2FROM customers
3INNER JOIN orders
4  ON orders.customer_id = customers.customer_id;
5
6SELECT customers.name, orders.order_id
7FROM customers
8LEFT JOIN orders
9  ON orders.customer_id = customers.customer_id;

Qualifique colunas com nome da tabela quando houver ambiguidade. A condição em ON define o relacionamento, e múltiplas correspondências podem gerar múltiplas linhas no resultado.

Principais conclusões

  • Escolher entre INNER JOIN e LEFT JOIN para cada pergunta.

  • Use nomes de tabela e coluna que tornem a consulta legível.

  • Confirme quais linhas a consulta afeta antes de depender do resultado.

Quiz da aula

5 perguntas · aprovação com 4 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva consultas SQL

Escreva consultas em pequenos bancos de dados de exemplo e execute-as localmente no navegador. Cada teste começa com um banco SQLite novo.

Exercício 1

Liste clientes e pedidos

+25 XP

Retorne todos os nomes de clientes e order_id correspondente (incluindo clientes sem pedidos), ordenando por customer_id e order_id.

  • Todos clientes e pedidos
Escolha o mecanismo de banco de dados para executar os testes.
Tabelas e registros de exemplo

Cada teste recria um banco de dados em memória no dialeto escolhido antes de executar a consulta.

sample-data.sql
CREATE TABLE customers (customer_id INTEGER PRIMARY KEY, name TEXT); CREATE TABLE orders (order_id INTEGER PRIMARY KEY, customer_id INTEGER, total REAL); INSERT INTO customers VALUES (1, 'Sam Lee'), (2, 'Ari Chen'), (3, 'Jo Diaz'); INSERT INTO orders VALUES (101, 1, 20), (102, 1, 15), (103, 3, 9);
query.sql
Carregando editor…

Usando SQLite 3 (sql.js), um banco de dados embutido. As consultas rodam localmente em um worker, com um banco em memória novo a cada teste.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…