Insertar, actualizar y borrar datos
Cuatro módulos preguntando datos, y ni uno cambiándolos. Hoy tocan los otros tres verbos de SQL: meter filas nuevas, corregir las que ya existen, y borrar las que sobran. Son los comandos con más responsabilidad de todo el curso — y los únicos que, en una base de datos real, no tienen deshacer.
INSERT INTO: añadir una fila nueva
Para insertar, dices en qué tabla, opcionalmente en qué columnas exactas, y los valores en el mismo orden. Prueba esto y luego pídele a la tabla que te muestre el resultado — el playground recuerda tus cambios mientras no recargues la página.
Fíjate en que no hemos escrito el id: como es la
clave primaria y en esta tabla se autoincrementa, la base de datos se lo
asigna sola. Escribe siempre el listado de columnas explícito
((nombre, ciudad, email)) en vez de confiar en el
orden por defecto de la tabla — si alguien añade una columna nueva en medio,
tu INSERT sin columnas explícitas se rompe.
Valores NULL: la ausencia de dato
NULL no es cero, ni una cadena vacía: es "no hay
ningún valor aquí". Por eso no puedes comparar con
= NULL — tienes que usar
IS NULL o IS NOT NULL.
UPDATE: corregir filas existentes
UPDATE cambia valores de filas que ya existen.
Necesita tres partes: la tabla, qué columnas cambian con
SET, y —casi siempre— un
WHERE para no tocar toda la tabla de golpe.
Ejecutar un UPDATE sin
WHERE. Sin filtro, actualizas
todas las filas de la tabla — en este playground, como mucho
reinicias la página. En una base de datos real de producción, es la forma más
rápida de arruinarte la tarde (o la semana). Antes de ejecutar un UPDATE,
ejecuta mentalmente el mismo WHERE como un SELECT primero, y comprueba que
solo afecta a las filas que quieres.
DELETE: borrar filas
El mismo patrón que UPDATE, con el mismo riesgo multiplicado: sin
WHERE, DELETE FROM tabla;
borra todas las filas de esa tabla, una a una, para siempre.
En proyectos reales es habitual no borrar nunca de verdad: en su lugar, se
añade una columna como activo o
eliminado_en y se actualiza esa columna en vez de
ejecutar DELETE. Se llama borrado lógico (soft delete), y te
salva de más de un susto.
Ponlo a prueba
Comprueba lo que has aprendido
1. ¿Cómo compruebas si una columna no tiene valor?
2. ¿Qué pasa si ejecutas UPDATE productos SET precio = 0; sin WHERE?
3. ¿Qué es el "borrado lógico" (soft delete)?