Come modificare i dati nella tabella SQL

I dati nella tabella SQL possono essere modificati tramite il comando UPDATE.

UPDATE tabella
SET attributo = dato
[, attributo= dato ]
[ WHERE condizione ]

Questo comando mi consente di modificare il valore dei record ( righe ) in uno o più campi ( colonne ) della tabella.

Nella clausola SET è indicato l'attributo e il valore da registrare dopo il simbolo uguale.

Esempio

UPDATE Persone
SET regione = 'Lazio'
WHERE residenza = "Roma"

Il dato può essere un valore, il risultato di un altra select nidificata, il simbolo NULL o DEFAULT.

Il comando aggiorna tutti i dati che soddisfano la condizione indicata nella clausola WHERE.

Nota. La condizione WHERE è facoltativa. Se la condizione non è indicata, il comando UPDATE aggiorna tutti i dati della tabella.

Un esempio pratico

Ho la tabella persone

la tabella Studenti

Per aumentare di un anno il campo Età di tutte le righe scrivo il comando UPDATE senza condizioni

UPDATE Persone
SET anno = anno +1

Nella query non è presente la clausola WHERE.

Quindi, la condizione è sempre soddisfatta per ogni riga.

Il risultato è il seguente

la tabella dopo l'aggiornamento

Attenzione. Il nuovo valore si sovrappone a quelli precedenti che, pertanto, dopo l'esecuzione della query sono perduti per sempre.

Esempio 2

Devo scrivere "Firenze" in tutte le righe in cui il cognome è "Rossi".

Per farlo scrivo il comando UPDATE con la clausola WHERE.

UPDATE Persone
SET residenza ="Firenze"
WHERE cognome ='Rossi'

Il DBMS seleziona le righe in cui l'attributo Cognome è uguale a "Rossi".

Poi le modifica scrivendo "Firenze" nell'attributo Residenza.

il risultato sulla tabella

In questo caso soltanto due righe della tabella sono modificate.

Come modificare un solo record della tabella

Per modificare una singola riga devo indicare una condizione in grado di identificarla in modo univoco.

L'ideale è usare una chiave primaria ( PRIMARY KEY ) come condizione.

Esempio

La tabella Dipendenti ha una chiave primaria nell'attributo Matricola.

il valore NULL nella base dati

Per aggiornare lo stato civile della matricola 2234 scrivo il comando UPDATE con la clausola WHERE:

UPDATE Dipendenti
SET StatoCivile = "coniugato"
WHERE ( id = "2234" )

Il comando UPDATE modifica solo la riga indicata perché Matricola è una chiave primaria.

il risultato

Tutti gli altri record non sono modificati poiché sono associati a numeri identificativi diversi.

Esempio 2

Se la tabella non ha una chiave primaria, posso indicare nella condizione WHERE più attributi.

UPDATE Dipendenti
SET StatoCivile = "coniugato"
WHERE ( Nome = "Giovanni ) AND ( Cognome = "Russo" )

Il risultato è lo stesso dell'esempio precedente.

il risultato

Tuttavia, se nella tabella ci sono due persone con lo stesso nome e cognome, il comando aggiorna entrambe le righe.

Pertanto, è sempre meglio definire una chiave primaria in ogni tabella.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

SQL