Al terminar esta lección podrás
- Identificar claves.
- Explicar una relación entre tablas.
- Elegir columnas correctas para un JOIN.
Antes de empezar: Tablas, filas y columnas. Explica en una frase qué recuerdas antes de continuar.
La idea, sin código
Una clave primaria identifica de forma única una fila. Una clave foránea guarda el identificador de una fila relacionada. En pedidos, cliente_id apunta a clientes.id.
Pregunta guía: ¿qué representa cada fila antes y después de aplicar este concepto?
Sintaxis mínima
clientes.id ← pedidos.cliente_idPrimer ejemplo guiado
| id | nombre | ciudad | |
|---|---|---|---|
| 1 | Ana | Madrid | ana@ejemplo.es |
| 2 | Luis | Valencia | luis@ejemplo.es |
| 3 | Marta | Madrid | NULL |
| 4 | Omar | Sevilla | omar@ejemplo.es |
| 5 | Nora | Bilbao | nora@ejemplo.es |
| id | cliente_id | fecha | total | estado |
|---|---|---|---|---|
| 101 | 1 | 2026-07-02 | 65 | enviado |
| 102 | 2 | 2026-07-04 | 189 | pendiente |
| 103 | 1 | 2026-07-09 | 44 | enviado |
| 104 | 3 | 2026-07-11 | 899 | cancelado |
| 105 | 5 | 2026-07-15 | 118 | enviado |
Analiza la consulta antes de comprobar el resultado:
SELECT id, cliente_id, total
FROM pedidos;| id | cliente_id | total |
|---|---|---|
| 101 | 1 | 65 |
| 102 | 2 | 189 |
| 103 | 1 | 44 |
| 104 | 3 | 899 |
| 105 | 5 | 118 |
Qué ocurre paso a paso
- pedidos.id identifica cada pedido.
- pedidos.cliente_id no identifica el pedido; identifica su cliente.
- La relación permite buscar el nombre sin duplicarlo en cada pedido.
Error frecuente
Consulta o razonamiento problemático
JOIN clientes ON pedidos.id = clientes.idUne identificadores de entidades diferentes. La relación correcta es pedidos.cliente_id = clientes.id.
Práctica guiada
Resuelve una sola dificultad cada vez
Describe la relación entre libros y autores utilizando sus columnas.
Solución razonada
-- libros.autor_id referencia autores.idCada libro almacena autor_id para indicar qué fila de autores le corresponde.
Comprueba: identifica qué parte recupera, filtra, transforma, relaciona o modifica los datos.
Ahora sin guía
Transfiere lo aprendido
Explica por qué no conviene copiar el nombre del cliente dentro de cada pedido.
Comparar con una solución posible
El nombre podría cambiar y quedar inconsistente; la clave mantiene una sola fuente de verdad.Puede existir otra solución válida. Comprueba que produce el resultado pedido y que puedes explicar cada cláusula.
Resumen para llevarte
- La clave primaria identifica una fila.
- La clave foránea representa una relación.
- Comprender la relación precede a escribir un JOIN.
Siguiente paso: Continúa con INNER JOIN: conservar coincidencias.