Al terminar, podrás
- Separar el alcance de la modificación.
- Aplicar UPDATE sin alterar columnas innecesarias.
- Preparar un DELETE con una comprobación previa.
Recupera lo aprendido: ¿INSERT cambia una fila existente o crea una nueva?
La idea clave
UPDATE cambia columnas de filas existentes y DELETE elimina filas completas. En ambos casos, WHERE define el alcance. Por eso la consulta de lectura previa es parte del procedimiento, no un paso opcional.
Secuencia de seguridad: selecciona, cuenta, modifica y vuelve a seleccionar. Si el motor y la operación lo permiten, realiza el cambio dentro de una transacción.
La sintaxis básica
UPDATE tabla
SET columna = nuevo_valor
WHERE condicion;DELETE FROM tabla
WHERE condicion;Ejemplo paso a paso
El pedido 102 está pendiente y suma 49,50. Primero comprobamos su clave y estado; después cambiamos solo esa fila.
SELECT id, estado, total
FROM pedidos
WHERE id = 102;
UPDATE pedidos
SET estado = 'enviado'
WHERE id = 102;
SELECT id, estado, total
FROM pedidos
WHERE id = 102;| id | estado | total |
|---|---|---|
| 102 | enviado | 49,50 |
Cómo funciona
- La primera lectura confirma que la clave 102 identifica una fila.
SETcambia únicamenteestado; el resto de columnas se conserva.- La segunda lectura confirma tanto el nuevo valor como el alcance.
Un error habitual
Omitir la condición
UPDATE pedidos
SET estado = 'enviado';Sin WHERE, todas las filas de pedidos cumplen el alcance de la sentencia. La sintaxis es válida, pero el resultado rara vez es el deseado.
Practica con datos
Laboratorio SQL
Resuelve la consulta
Escribe la sentencia SQL que actualice únicamente el pedido 102 para que su estado sea enviado.
Resultado esperado: 1 fila con id, estado.
Ver tablas y datos
Cargando la estructura del ejercicio…
Comprueba primero SELECT * FROM pedidos WHERE id = 102.
Usa SET estado = ...
Conserva WHERE id = 102.
Solución
UPDATE pedidos SET estado = 'enviado' WHERE id = 102;La clave primaria identifica una única fila y hace el alcance fácil de verificar.
Puedes consultar la solución y volver a intentarlo. La práctica se completa cuando tu consulta funciona.
La consulta usa datos ficticios y se ejecuta solo en este navegador.
Fuentes técnicas consultadas
Las referencias confirman que UPDATE solo cambia las columnas indicadas y que DELETE sin WHERE elimina todas las filas. Las cláusulas adicionales, como RETURNING, FROM o LIMIT, varían entre motores y no se presentan como SQL universal.
Comprueba si puedes explicarlo
¿Basta con que una sentencia UPDATE contenga WHERE para que sea segura?
Ver respuesta razonada
No. WHERE puede seleccionar demasiadas filas. Comprueba las claves que coinciden, verifica el estado posterior y confirma también que las demás filas siguen iguales.
Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.
Qué debes recordar
- Prueba primero la condición con SELECT.
- UPDATE conserva las columnas que no aparecen en SET.
- DELETE elimina filas, no la estructura de la tabla.
A continuación: agrupa cambios relacionados en una transacción.