UPDATE
Modificare una riga
Sezione intitolata “Modificare una riga”UPDATE serve quando devi cambiare un dato già presente.
Un cliente cambia città. Un prodotto cambia prezzo. Un ordine passa da “in preparazione” a “spedito”. In tutti questi casi non vuoi creare una nuova riga: vuoi aggiornare quella giusta.
Ecco la forma base:
UPDATE clientiSET citta = 'Bologna'WHERE id = 1;Questa query dice:
“Nella tabella
clienti, cambia la città inBologna, ma solo per la riga conid = 1.”
Il ruolo di SET
Sezione intitolata “Il ruolo di SET”SET indica cosa deve cambiare:
SET citta = 'Bologna'Puoi aggiornare anche più colonne insieme:
UPDATE clientiSET citta = 'Bologna', email = 'luca.nuova@email.it'WHERE id = 1;Qui cambi sia la città sia l’email dello stesso cliente.
Il ruolo di WHERE
Sezione intitolata “Il ruolo di WHERE”La parte da controllare con più attenzione è WHERE.
WHERE id = 1Questa condizione sceglie la riga da modificare. Senza di essa, il database può aggiornare tutte le righe.
Attenzione: Un
UPDATEsenzaWHEREpuò modificare tutte le righe della tabella.
Una buona abitudine
Sezione intitolata “Una buona abitudine”Prima di fare un aggiornamento importante, prova la condizione con una SELECT:
SELECT *FROM clientiWHERE id = 1;Se la SELECT mostra una sola riga, sai che l’UPDATE toccherà una sola riga. Se ne mostra molte, fermati e controlla meglio il filtro.
Usare il valore attuale
Sezione intitolata “Usare il valore attuale”A volte il nuovo valore dipende da quello già presente.
Per esempio, questa query aumenta del 10% il prezzo di un prodotto:
UPDATE prodottiSET prezzo = prezzo * 1.10WHERE id = 5;prezzo * 1.10 significa: “prendi il prezzo attuale e moltiplicalo per 1,10”.
Anche in questo caso il filtro WHERE decide quali righe cambiano.
Riepilogo rapido
Sezione intitolata “Riepilogo rapido”UPDATEmodifica righe già esistenti.SETdice quali colonne cambiare.WHEREdice quali righe modificare.- Prima di un aggiornamento importante, controlla il filtro con una
SELECT. - Senza
WHERE, rischi di aggiornare tutta la tabella.