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á intactaSQL
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.
¿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
¿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;
En una transacción, ¿para qué sirve ROLLBACK?
Para confirmar los cambios de forma definitiva
Para cancelar todos los cambios hechos desde BEGIN