Istruzione UPDATE.

Analizziamo l'istruzione UPDATE, che permette di modificare uno o piu' record presenti in una tavola.

L’istruzione UPDATE consente di modificare valori relativi ai record presenti in una tabella, permettendo di decidere quali colonne variare e per quali record.

La sintassi dell’istruzione e’:

UPDATE tabella

SET col1 = valore1, col2 = valore2…..

WHERE ………

Quindi tramite la SET si specificano i nuovi valori per le colonne da modificare, con la WHERE si scelgono i record da trasformare. In mancanza di una where verrebbero modificati tutti i record della tavola.

Ad esempio supponiamo di voler modificare un record della tabella sedi , in particolare di cambiare la citta’ della sede relativa alla ricerca, da ‘ROMA’ a ‘TORINO’. La colonna da modificare e’ la citta’, quindi dovremo scrivere:

SET citta = ‘TORINO’

Dobbiamo pero’ specificare quale record modificare, inserendo nella where una condizione che permetta di indicare solo quel particolare record. Nel nostro caso possiamo usare sia il codice che e’ 20 che il nome che e’ ‘RICERCA’; conviene utilizzare il primo, in quanto su di esso e’ definita una primary key e quindi in questo modo siamo certi di modificare un solo record. L’istruzione completa e’:

UPDATE sedi

set citta = ‘TORINO’

where codice = 20;

In questo modo la nuova tabella sedi sara’:

ID NOME CITTA
10 DIREZIONE MILANO
20 RICERCA TORINO
30 SVILUPPO ROMA

Se avessimo voluto modificare contemporaneamente sia la citta’ che il nome avremmo scritto:

UPDATE sedi

set citta = ‘TORINO’, nome=’SVILUPPO’

where codice = 20;

Come per la insert vanno rispettati tutti i constraint e le dimensioni e i tipi dei campi. Quindi non e’ possibile modificare un numero e sostituirlo con una stringa, annullare il valore di una colonna not null ecc.

E’ possibile modificare uno o piu’ record andando a prendere il valore da un’altra tabella o dalla stessa, ad esempio supponiamo di voler spostare MARIO BIANCHI nella stessa sede di PAOLO VERDI.

Potremmo andare a leggere, con una select, dalla tabella impiegati la sede del sig. VERDI e successivamente, con una update modificare la sede del sig. BIANCHI, oppure fare tutto con una sola istruzione:

UPDATE impiegati

set sede = (SELECT sede FROM impiegati WHERE nome = ‘PAOLO’ AND cognome=’VERDI’)

WHERE nome = ‘MARIO’ AND cognome =’BIANCHI’;

E’ possibile modificare anche piu’ colonne contemporaneamente andandole a leggere da una tabella, ad esempio volendo assegnare anche lo stesso stipendio:

UPDATE impiegati

set (sede,salario) =

(SELECT sede,salario FROM impiegati WHERE nome = ‘PAOLO’ AND cognome=’VERDI’)

WHERE nome = ‘MARIO’ AND cognome =’BIANCHI’;

E’ ovviamente importante l’ordine con cui si estraggono le colonne, in quanto il primo valore estratto sara’ inserito nella prima colonna indicata nella set.

E’ possibile anche annullare uno o piu’ campi di un record, ed e’ l’unico caso in cui si usa il segno ‘=’ con il NULL. Supponiamo, ad esempio di voler annullare il salario di tutti i dipendenti (sempre che non sia stato definito come campo not null):

UPDATE impiegati

SET salario = NULL;

Senza la condizione di where vengono modificati tutti i record.

Per quanto riguarda la update abbiamo terminato, in quanto anche questa istruzione ha una sintassi relativamente semplice.

PUBBLICITÀ
PUBBLICITÀ
Le vostre opinioni
Pubblicato il 17 maggio 2001 in: SQL

Ultimi interventi

Vedi tutti

Le categorie della guida

Inserisci per primo un commento a questo articolo.

PUBBLICITÀ
PUBBLICITÀ
L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No

Anteprima del commento