francesco.chianese
pubblicato più di 2 anni fa

L’istruzione UPDATE in MySQL

Effettuare l'update di campi e tabelle in MySQL

L’istruzione UPDATE, istruzione che fa parte del Data Manipulation Language – DML( http://it.wikipedia.org/wiki/Data_Manipulation_Language) dell linguaggio SQL, consente di modificare record già presenti in una tabella..

Essa può essere usata per cambiare singole righe, un gruppo di righe, oppure tutte le righe di una tabella. La sintassi prevede il nome della tabella da aggiornare, più la clausola SET per identificare i campi da modificare ed opzionalmente una clausola WHERE, se si vuole restringere l’UPDATE con delle condizioni.

La sintassi è dunque la seguente:

1UPDATE nome_tabella
2SET colonna = valore
3WHERE condizioni;

Facendo un esempio supponiamo che nella tabella Impiegato, costituita dai campi Matricola, Nome, Cognome, Sede, vogliamo impostare la sede di lavoro Milano per tutti gli impiegati. La sintassi sarà la seguente

1UPDATE Impiegato
2SET Sede = 'Milano';

In questo modo tutti gli impiegati presenti in tabella avranno come sede Milano. Se altrimenti vogliamo modificare la Sede dei soli impiegati la cui sede precedente era Roma si dovrà ricorrere alla clausola WHERE

1UPDATE Impiegato
2SET Sede = 'Milano', Cognome = 'Rossi',
3WHERE Sede = 'Roma' AND Cognome = 'Bianchi';

modifica in Milano e Rossi rispettivamente la sede ed il cognome per gli impiegati con sede a Roma e Cognome Rossi.

Va da se che gli aggiornamenti ai campi indicati nella clausola SET verranno effettuati solo se sono concordi col tipo dati di quei campi. Ovvero nel caso in cui si vuole modificare un campo con datatype INTEGER inserendo una stringa di testo, MySQL restituirà un messaggio di errore (l’errore con codice 1366). Inoltre c’è da dire che in presenza di una modifica i valori numerici fuori scala vengono convertiti al più vicino valore in scala, e le stringhe di testo troppo lunghe vengono troncate. Ad esempio, se in una colonna di tipo TINYINT, che ammette valori da -128 a 127, inseriamo 200 o -200 verrà visualizzato il valore -128 o 127 rispettivamente, e se in una colonna definita come CHAR (2) inseriamo Milano, verrà memorizzata in tabella la stringa MI.

Infine, oltre alle clausole SET e WHERE, esistono anche le clausole LOW_PRIORITY ed IGNORE. LOW_PRIORITY ritarda l’esecuzione dell’aggiornamento, fino a quando non terminano altre applicazioni client stanno leggendo dati dalla stessa tabella, mentre IGNORE consente di ignorare gli errori che possono presentarsi cercando di effettuare l’aggiornamento. Ad esempio se i dati inseriti non sono compatibili col tipo dati di una colonna, in presenza della clausola IGNORE, MySQL tenta di convertire i dati inseriti nel valore ad essi più vicino, consentendo l’aggiornamento della tabella.

Altre istruzioni fondamentali: Istruzione DELETE Istruzione INSERT

Condividi su:

Esprimi un voto:

  • Current rating: 5.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic