Kodokon kodokon.com

Modificar los datos: INSERT, UPDATE, DELETE

Añade, modifica y elimina filas de forma segura, evitando la clásica trampa del WHERE olvidado.

8 min · 3 preguntas

Abrir esta lección en Kodokon

Hasta ahora, solo has leído datos. Pasemos a la escritura. INSERT INTO añade una fila: enumeras las columnas entre paréntesis y luego los valores correspondientes después de VALUES, en el mismo orden. Nombrar las columnas de forma explícita es un buen hábito: la consulta sigue siendo válida aunque la estructura de la tabla evolucione.

SQL
INSERT INTO books (id, title, author, genre, year, price)
VALUES (8, 'Ravage', 'Barjavel', 'sf', 1943, 7.5);

SELECT * FROM books WHERE id = 8;
Añadir un octavo libro y luego comprobar

UPDATE modifica filas existentes: después de SET, indicas la columna y su nuevo valor; después de WHERE, especificas qué filas se ven afectadas. Este WHERE es crucial: es lo que dirige el cambio.

SQL
UPDATE books SET price = 8.9 WHERE id = 8;

SELECT title, price FROM books WHERE id = 8;
El precio de Ravage pasa de 7.5 a 8.9

DELETE FROM elimina filas. Como con UPDATE, la cláusula WHERE designa las filas que hay que eliminar; las demás permanecen intactas. Eliminemos el libro que acabamos de añadir y luego comprobemos el recuento.

SQL
DELETE FROM books WHERE id = 8;

SELECT COUNT(*) FROM books;
De vuelta a 7 filas: la tabla original está intacta
SQL
BEGIN;
DELETE FROM books WHERE genre = 'sf';
SELECT COUNT(*) FROM books;
ROLLBACK;
SELECT COUNT(*) FROM books;
3 filas durante la transacción, 7 tras el ROLLBACK

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. ¿Qué hace la consulta DELETE FROM books; cuando se ejecuta sin WHERE?
    • Elimina la primera fila de la tabla
    • Elimina todas las filas de la tabla
    • Provoca un error de sintaxis
  2. ¿Qué consulta cambia el precio del libro con id 3 a 6.9?
    • UPDATE books SET price = 6.9 WHERE id = 3;
    • INSERT INTO books SET price = 6.9;
    • SELECT price = 6.9 FROM books WHERE id = 3;
  3. En una transacción, ¿para qué sirve ROLLBACK?
    • Para confirmar los cambios de forma definitiva
    • Para cancelar todos los cambios hechos desde BEGIN
    • Para eliminar la tabla afectada