Vediamo in questa lezione quando e come utilizzare il comando SQL UPDATE grazie al quale è possibile aggiornare i dati già presenti all’interno di una tabella di un database.
I dati di una tabella, infatti, sono spesso soggetti a cambiamenti ed a modifiche. Un esempio di modifica che potremmo dover effettuare all’interno della nostra tabella dei "libri" (cui abbiamo fatto più volte riferimento in questa guida) è la variazione del prezzo o della descrizione del libro.
Per aggiornare, o modificare che dir si voglia, i dati di una tabella, si utilizza la sintassi seguente:
UPDATE nome_tabella SET nome_campo = 'valore'
Il comando UPDATe è seguito dal nome della tabella che si desidera aggiornare seguita dall’istruzione SET dopo la quale verranno elencati i campi che si desidera modificare indicando per ciascuno (mediante il simbolo uguale) il nuovo valore.
Vediamo un esempio:
UPDATE libri SET prezzo = 19.99
Si faccia attenzione, però, perché con questa istruzione SQL si andrebbe a modificare il prezzo di ogni libro presente nella nostra tabella! L’utilizzo di UPDATE, nella stragrande maggioranza dei casi, quindi non dovrà prescindere da WHERE. Vediamo un esempio:
UPDATE libri SET prezzo = 19.99 WHERE id = 1
Così facendo andremo a modificare solo il prezzo del record con id 1.
Nel nostro esempio abbiamo utilizzato la clausola WHERE seguita dall’identificativo numerico del libro che sappiamo essere 1 (se non avessimo conosciuto l’identificativo numerico avremmo potuto, ovviamente, fare una ricerca su altri campi).
Proviamo ora a modificare di nuovo il prezzo del libro portandolo a 15.99 euro e, simultaneamente, cambieremo anche la descrizione del libro:
UPDATE libri
SET
prezzo = 15.99,
descrizione = 'Un bel libro anche se un po troppo lungo'
WHERE id = 1
Come potete vedere abbiamo utilizzato la virgola per separare i valori da aggiornare (quelli compresi tra SET e WHERE, per intenderci). Nell’esempio ne abbiamo previsti due, ma ovviamente nulla ci vieta di agire su molti più campi.
Sino ad ora abbiamo effettuato UPDATE su singoli record (in tutti gli esempi abbiamo utilizzato "WHERE id = 1"), vediamo ora come agire su una molteplicità di record. Per farlo utilizzeremo la clasuola WHERE effettuando una selezione su più campi (autore e prezzo). Vediamo, quindi, come aggiornare il prezzo di tutti i libri il cui autore è Tolkien (id_autore = 1) ed il prezzo è compreso tra 50 e 100 euro:
UPDATE libri
SET
prezzo = 40
WHERE
id_autore = 1
AND
prezzo BETWEEN 50 AND 100
Se nella nostra tabella sono presenti più libri che corrispondo al criterio di ricerca il loro prezzo verrà impostato sul nuovo importo.
Concludendo rinnovo l’invito a prestare attenzione e ad utilizzare sempre una clausola WHERE in quanto, se omessa, la modifica riguarderebbe tutti i record presenti nella tabella. Per maggiore sicurezza è consigliabile, prima di effettuare l’UPDATE, verificare con una SELECT che i criteri di selezione impostati nella clausola WHERE siano corretti.