La tienda de móviles
Una tienda de móviles de segunda mano guarda sus productos en una tabla. Hoy hay dos problemas.
El Modelo B baja de precio. Y el Modelo C ya no se vende.
No hay que crear la tabla otra vez. Hay que cambiar una fila y borrar otra. Y hay que hacerlo con mucho cuidado.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| UPDATE | La orden que cambia datos de filas que ya existen. | UPDATE phones SET price = 180 |
| SET | Dice qué columna cambia y el valor nuevo. | SET price = 180 |
| DELETE | La orden que borra filas enteras. | DELETE FROM phones WHERE id = 3 |
| WHERE | Elige qué filas se cambian o se borran. | WHERE id = 2 |
| Copia de seguridad | Una copia de los datos por si algo sale mal. | Guardar la tabla antes de borrar |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pruébalo: el stock de hoy
-- Cuatro modelos. El Modelo C tiene stock 0.
SELECT * FROM phones;
UPDATE ... SET ... WHERE
Para cambiar un dato escribes UPDATE, el nombre de la tabla y SET con el valor nuevo. Después, WHERE dice qué filas cambian.
El WHERE es el mismo que ya conoces: WHERE id = 2 elige solo el Modelo B.
Pruébalo: rebaja el Modelo B
-- Solo cambia la fila con id 2.
UPDATE phones SET price = 180 WHERE id = 2;
SELECT * FROM phones;
-- Mira el precio del Modelo B: ahora son 180 euros.
Calcular con el valor de antes
Un UPDATE puede usar el valor que había. Si vendes un Modelo D, el stock baja uno: SET stock = stock - 1.
Y puedes cambiar varias columnas a la vez, separadas por comas.
Pruébalo: se vende un Modelo D
-- El stock del Modelo D pasa de 4 a 3.
UPDATE phones SET stock = stock - 1 WHERE model = 'Modelo D';
SELECT * FROM phones;
-- Prueba también SET stock = stock - 1, price = 140 en la misma orden.
Ejemplo resuelto: qué cambia
| Orden | Filas que cambian | Antes | Después |
|---|---|---|---|
| SET price = 180 WHERE id = 2 | Una: el Modelo B | price 200 | price 180 |
| SET stock = stock - 1 WHERE model = 'Modelo D' | Una: el Modelo D | stock 4 | stock 3 |
| SET price = 100 (sin WHERE) | Las cuatro | 120, 200, 90 y 150 | 100, 100, 100 y 100 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Sin WHERE, cambia toda la tabla
Advertencia
Si olvidas el WHERE, el cambio se aplica a todas las filas. La base no pregunta si estás seguro. Un olvido así puede estropear toda la tabla en un segundo.
Repaso rápido: UPDATE
Inténtalo
Repaso rápido: UPDATE
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.