UPDATE serve ad aggiornare i campi di un record esistente.
La sintassi è:
UPDATE nome_tabella SET nome_colonna = nuovo_valore WHERE nome_colonna <operatore> valore;
Prendiamo ad esempio la tabella:
| TABELLA: persone | ||
| nome | cognome | paese |
| Paolo | Bianchi | Milano |
| Giuseppe | Rossi | Roma |
| Verdi | Roma | |
ed eseguiamo la query:
UPDATE persone SET nome = "Francesco" WHERE cognome = "Verdi";
otterremo:
| nome | cognome | paese |
| Paolo | Bianchi | Milano |
| Giuseppe | Rossi | Roma |
| Francesco | Verdi | Roma |
UPDATE di diversi campi di un record
UPDATE persone SET nome = "Alessio", paese = "Palermo" WHERE cognome = "Verdi";
produce:
| nome | cognome | paese |
| Paolo | Bianchi | Milano |
| Giuseppe | Rossi | Roma |
| Alessio | Verdi | Palermo |
NOTA: è un dovere precisare che negli esempi utilizziamo il cognome nella clausola WHERE. In un database più complesso è facile che si presentino più record con dati simili (Mario Rossi, Paolo Rossi, ecc.) e una query strutturata in quel modo avrà effetto su tutti i record che hanno verificano la clausola WHERE cognome = "Rossi".
Per ovviare al problema, ogni tabella dovrebbe contenere un campo unico, definito come chiave primaria. Lascio all’utente l’approfondimento in attesa di una prossima guida sull’argomento.
UPDATE di tutti i record
I precedenti esempi di UPDATE, hanno effetto su un singolo record grazie all’uso di WHERE. Nel caso in cui vogliamo aggiornare in massa tutti i record del database, possiamo usare:
UPDATE persone SET paese = "Italia";
per ottenere:
| nome | cognome | paese |
| Paolo | Bianchi | Italia |
| Giuseppe | Rossi | Italia |
| Alessio | Verdi | Italia |
Alcuni preferiscono strutturare la query come segue:
UPDATE persone SET paese = "Italia" WHERE 1;
alla fine produce lo stesso risultato, ma è più completa e salta subito agli occhi che è una query di aggiornamento massivo.
Commenti recenti