0Pricing
SQL Academy · Lección

UPDATE con FROM y actualizaciones al estilo JOIN

Actualice filas usando valores de otra tabla con UPDATE ... FROM (PostgreSQL) y la instrucción estándar MERGE.

UPDATE con FROM y actualizaciones al estilo JOIN es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.

UPDATE básico

Cambie los valores de las filas coincidentes:

UPDATE users SET full_name = 'Alice Adams' WHERE id = 1;

Varias columnas

Lista SET separada por comas:

UPDATE users
SET full_name = 'Alice', last_login = NOW(), visits = visits + 1
WHERE id = 1;

Actualizar muchas filas

Haga coincidir más filas usando WHERE:

UPDATE orders SET status = 'archived'
WHERE created_at < NOW() - INTERVAL '5 years';

UPDATE con subconsulta

Calcule el nuevo valor a partir de otra consulta:

UPDATE products
SET review_count = (
  SELECT COUNT(*) FROM reviews WHERE reviews.product_id = products.id
);

UPDATE … FROM (PostgreSQL)

Actualización al estilo JOIN: obtenga valores de otra tabla:

UPDATE products p
SET stock = i.qty
FROM inventory i
WHERE i.product_id = p.id;

UPDATE … FROM con varias tablas

La lista FROM puede incluir varias tablas:

UPDATE invoices inv
SET tax_rate = r.rate
FROM users u
JOIN rates r ON r.country = u.country
WHERE inv.user_id = u.id;

SQL estándar: UPDATE … FROM mediante una subconsulta correlacionada

Equivalente portable, aunque más lento:

UPDATE products p
SET stock = (SELECT qty FROM inventory i WHERE i.product_id = p.id);

MERGE para INSERT/UPDATE/DELETE

PostgreSQL 15+ admite MERGE para operaciones combinadas; consulte la lección sobre UPSERT.

RETURNING de UPDATE

Recupere las filas actualizadas en un solo viaje de ida y vuelta:

UPDATE orders SET status = 'shipped', shipped_at = NOW()
WHERE id = $1
RETURNING id, status, shipped_at;

Actualizar con CASE

Nuevos valores condicionales:

UPDATE orders
SET status = CASE
  WHEN paid_at IS NOT NULL THEN 'paid'
  WHEN created_at < NOW() - INTERVAL '24h' THEN 'expired'
  ELSE status
END;

Cuidado con omitir WHERE

UPDATE users SET active = false; actualiza TODAS las filas. En producción:

  • Ejecute primero un SELECT para verificar el número de filas
  • Use una transacción y compruébelo antes de COMMIT
  • Use BEGIN; ...; SELECT count(*) FROM users WHERE active = false; ROLLBACK; como simulación

Rendimiento de UPDATE

Un UPDATE crea una nueva versión de la fila y marca la anterior como obsoleta (MVCC). Las tablas con actualizaciones frecuentes pueden aumentar excesivamente de tamaño; esto se explica en la lección sobre VACUUM/MVCC.

Resumen

UPDATE … FROM es la actualización al estilo JOIN que facilita las correcciones masivas.

  • Use siempre WHERE; no lo olvide nunca
  • Use RETURNING para verificar
  • Pruebe en una transacción con ROLLBACK

Comprobación rápida

¿Qué sintaxis de UPDATE permite hacer referencia a otra tabla en PostgreSQL?

Preguntas frecuentes

¿La lección «UPDATE con FROM y actualizaciones al estilo JOIN» es gratis?

Sí — el texto completo de «UPDATE con FROM y actualizaciones al estilo JOIN» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.

¿Qué aprenderé en «UPDATE con FROM y actualizaciones al estilo JOIN»?

Actualice filas usando valores de otra tabla con UPDATE ... FROM (PostgreSQL) y la instrucción estándar MERGE. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar SQL Academy?

No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «UPDATE con FROM y actualizaciones al estilo JOIN»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de SQL Academy?

Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. INSERT con varias filas
  2. UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE con FROM y actualizaciones al estilo JOIN
  4. DELETE con USING y patrones seguros
← Volver a SQL Academy