mysql update statement tutorial update query syntax examples
Questo tutorial spiega l'istruzione UPDATE di MySQL insieme alla sintassi delle query e agli esempi. Imparerai anche diverse varianti del comando della tabella di aggiornamento di MySQL:
Come con qualsiasi altro database, abbiamo sempre la necessità di aggiornare o modificare o cambiare i dati esistenti nelle tabelle. In MySQL, abbiamo l'istruzione UPDATE che potrebbe essere utilizzata per aggiornare o modificare i dati nella tabella.
Usando questo comando, possiamo aggiornare uno o più campi. Possiamo aggiornare i valori di una determinata tabella alla volta. Utilizzando la clausola WHERE possiamo specificare le condizioni utilizzate soprattutto quando è necessario aggiornare righe specifiche da una tabella.
Prima di procedere, tieni presente che stiamo utilizzando MySQL versione 8.0. Puoi scaricarlo da Qui.
Cosa imparerai:
- Sintassi della tabella UPDATE di MySQL
- Comando tabella UPDATE di MySQL
- # 1) MySQL che aggiorna una singola colonna
- # 2) MySQL Aggiorna più colonne
- # 3) Aggiornamento MySQL con la funzione REPLACE
- # 4) MySQL UPDATE utilizzando l'istruzione SELECT
- # 5) MySQL UPDATE più righe
- # 6) AGGIORNAMENTO MySQL utilizzando la parola chiave INNER JOIN
- # 7) MySQL UPDATE utilizzando la parola chiave LEFT JOIN
- Domande e risposte frequenti
- Conclusione
Sintassi della tabella UPDATE di MySQL
UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition; Spiegazione della sintassi:
- La sintassi inizia con la parola chiave “UPDATE”, informando in tal modo il server MySQL sul tipo di attività da eseguire. Questa è una parola chiave obbligatoria e non può essere omessa.
- Segue il nome della tabella su cui deve essere eseguita l'azione di aggiornamento. Questo è obbligatorio e non può essere omesso.
- Terzo, è ancora una parola chiave: SET. Questa parola chiave informa MySQL Server sui valori da aggiornare per i nomi delle colonne. Questa è una parola chiave obbligatoria e non può essere omessa.
- Successivamente, saranno i nomi delle colonne da aggiornare insieme ai valori corrispondenti. Anche questo è obbligatorio e non può essere omesso.
- Quindi arriva la condizione WHERE, che limita o filtra il numero di righe di destinazione su cui deve essere applicata l'azione UPDATE. DOVE è anche una parola chiave, ma opzionale.
La clausola WHERE è, tuttavia, significativa. Se non menzionato, o se la condizione non è impostata correttamente, né la tabella né le righe non richieste verranno aggiornate.
Modificatori in un'istruzione di tabella UPDATE
Di seguito sono elencati i modificatori in un'istruzione UPDATE.
BASSA PRIORITÀ: Questo modificatore informa il motore di MySQL di ritardare l'aggiornamento fino a quando non vi è alcuna lettura della connessione dalla tabella.
IGNORARE: Questo modificatore informa MySQL Engine di continuare con l'operazione UPDATE anche se sono presenti errori. Nessuna azione di aggiornamento viene eseguita sulle righe che hanno causato errori.
Esempio di aggiornamento di MySQL
Di seguito è riportata una tabella di esempio creata in MySQL.
Nome schema: Pacifico
Nome tabella: dipendenti
Nomi delle colonne:
- empNum - Contiene valori interi per il numero del dipendente.
- lastName: contiene i valori varchar per il cognome del dipendente.
- firstName: contiene i valori varchar per il nome del dipendente.
- email: contiene i valori varchar per l'ID email del dipendente.
- deptNum: contiene varchar per l'ID reparto a cui appartiene un dipendente.
- stipendio: contiene i valori decimali dello stipendio per ogni dipendente.

Nome schema: Pacifico
Nome tabella: dipartimenti
Nomi delle colonne:
- deptNum: contiene varchar per l'ID reparto all'interno di un'organizzazione.
- città: contiene il nome della città da cui lavorano i dipartimenti.
- paese: contiene il nome del paese corrispondente alla città.
- bonus: contiene il valore percentuale del bonus.

Comando tabella UPDATE di MySQL
# 1) MySQL che aggiorna una singola colonna
Ora, scopriamo un record che vorremmo aggiornare. Per prima cosa, daremo uno sguardo a uno scenario in cui dobbiamo aggiornare una singola colonna utilizzando la parola chiave UPDATE.
Ecco un dipendente con il numero del dipendente 1008.
La query e i risultati corrispondenti sono i seguenti:

Aggiorniamo l'ID email di questo dipendente da ob@gmail.com a oliver.bailey@gmail.com, utilizzando la parola chiave UPDATE.
AGGIORNARE: La parola chiave informa il motore MySQL che la dichiarazione riguarda l'aggiornamento di una tabella.
IMPOSTATO: Questa clausola imposta il valore del nome della colonna menzionato dopo questa parola chiave su un nuovo valore.
DOVE: Questa clausola specifica la riga particolare che deve essere aggiornata.

Dopo aver eseguito l'istruzione UPDATE, l'output mostrerà le statistiche relative all'esecuzione dell'istruzione.
Di seguito sono riportati i dettagli che vengono mostrati:
- Una dichiarazione che è stata eseguita.
- Messaggi che mostrano il numero di righe che sono state aggiornate e se sono presenti avvisi.
Per verificare l'output dell'istruzione UPDATE, eseguiamo nuovamente l'istruzione SELECT per vedere la modifica nell'ID e-mail.

Istantanea della tabella prima:
| empNum | nome di battesimo | cognome | deptNum | |
|---|---|---|---|---|
| 7 | Roma | Italia | ||
| 1008 | Oliver | Bailey | ob@gmail.com | 3 |
Query:
UPDATE employees SET email = “oliver.bailey@gmail.com” WHERE empNum = 1008 AND email = “ob@gmail.com” ; Istantanea della tabella dopo:
| empNum | nome di battesimo | cognome | deptNum | |
|---|---|---|---|---|
| 1008 | Oliver | Bailey | oliver.bailey@gmail.com | 3 |
# 2) MySQL Aggiorna più colonne
La sintassi per aggiornare più di una colonna utilizzando l'istruzione UPDATE è la stessa dell'aggiornamento di una singola colonna. Una singola istruzione SET avrà più nomi di colonna insieme al suo nuovo valore che deve essere impostato, separati da una virgola.
Diamo un'occhiata alla riga che dobbiamo aggiornare. Riga con il numero del dipendente come 1003.

Qui, proveremo ad aggiornare il cognome da 'Mary' a 'Margaret' e quindi l'ID e-mail da ml@gmail.com a margaret.langaley@gmail.com.
Quella che segue è la query UPDATE. Osserva i nomi delle colonne separati da una virgola.

L'output dell'esecuzione sopra mostra le stesse statistiche del caso precedente.
Di seguito è riportato l'output per lo stesso record dopo l'esecuzione dell'istruzione UPDATE.

Istantanea della tabella prima:
| empNum | nome di battesimo | cognome | deptNum | |
|---|---|---|---|---|
| 1003 | Maria | Langley | ml@gmail.com | Due |
Query:
UPDATE employees SET firstName = “Margaret”, email = “margaret.lagaley@gmail.com” WHERE empNum = 1003 AND firstName = “Mary” AND email = “ml@gmail.com” ; Istantanea della tabella dopo:
| empNum | nome di battesimo | cognome | deptNum | |
|---|---|---|---|---|
| 1003 | Margaret | Langley | margaret.langley@gmail.com | 3 |
# 3) Aggiornamento MySQL con la funzione REPLACE
Vediamo di più sull'utilizzo della funzione SOSTITUISCI per AGGIORNARE una riga nella tabella. Ecco il nostro record di destinazione che vogliamo aggiornare.
Il record seguente è per il dipendente numero 1010. Il nostro obiettivo è aggiornare l'ID e-mail da ja@gmail.com a jacob.armstrong@gmail.com.

Utilizziamo la seguente query UPDATE con la funzione REPLACE che aggiornerà l'ID email.

Di seguito sono riportati i parametri che vengono passati nella funzione REPLACE. Tutti e 3 i parametri sono di natura posizionale, ovvero l'ordine dei parametri non può essere modificato.
unostParametro: contiene il nome dell'ID e-mail.
DuendParametro: contiene l'ID e-mail FROM che deve essere modificato.
3rdParametro: contiene l'ID e-mail TO, che è il nuovo valore.
Di seguito è riportata l'istantanea della tabella post-esecuzione dell'istruzione UPDATE:

Istantanea della tabella prima:
| empNum | nome di battesimo | cognome | deptNum | |
|---|---|---|---|---|
| 1010 | Giacobbe | Armstrong | ja@gmail.com | 4 |
Query:
UPDATE employees SET email = REPLACE(email, “ja@gmail.com”, jacob.armstrong@gmail.com) WHERE empNum = 1010 ; Istantanea della tabella dopo:
| empNum | nome di battesimo | cognome | deptNum | |
|---|---|---|---|---|
| 1010 | Giacobbe | Armstrong | jacob.armstrong@gmail.com | 4 |
# 4) MySQL UPDATE utilizzando l'istruzione SELECT
In questo tipo di UPDATE, il nuovo valore per la colonna da aggiornare viene recuperato da un'istruzione SELECT in una sottoquery. Quindi, prendiamo un esempio qui dalla nostra tabella 'dipendenti'. Ecco il nostro record di destinazione che vogliamo aggiornare.


In questo caso, aggiorneremo il numero del reparto, ad esempio la colonna deptNum, utilizzando le tabelle dei dipartimenti. Se guardiamo la tabella dei dipartimenti, il deptNum = 5 corrisponde a Berlino. Spostiamo questo dipendente a Charlotte al deptNum = 2.
Per eseguire questa operazione, viene utilizzata la seguente istruzione UPDATE:

Per verificare l'output della nostra istruzione UPDATE, eseguiamo il SELEZIONARE dichiarazione.

Come mostrato sopra, il valore per la colonna deptNum è stato aggiornato a '2'.
Istantanea della tabella prima:
| empNum | nome di battesimo | cognome | deptNum | |
|---|---|---|---|---|
| 1005 | Peter | leggere | pl@gmail.com | 5 |
| deptNum | Città | Nazione |
|---|---|---|
| uno | New York | stati Uniti |
| Due | Carlotta | stati Uniti |
| 3 | Chicago | stati Uniti |
| 4 | Londra | Inghilterra |
| 5 | Berlino | Germania |
| 6 | Mumbai | India |
Query:
Istantanea della tabella dopo:
empNum nome di battesimo cognome e-mail deptNum 7 Roma Italia NULLO 1005 Peter leggere pl@gmail.com Due
# 5) MySQL UPDATE più righe
A volte, potremmo affrontare un requisito in cui dobbiamo aggiornare una o più colonne per più righe con valori diversi.
Per esempio, vogliamo dare una quantità particolare di bonus al reparto, ovvero tutti i dipendenti di un reparto dovrebbero ricevere una determinata quantità di bonus.
convertitore da youtube a mp4 di alta qualità
La sintassi generale è la seguente:
UPDATE TAB1 SET COL2 = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 …. ELSE result1 END; Per spiegare questo con un esempio, aggiungiamo un'altra colonna alle tabelle di reparto. Aggiungeremo la colonna 'bonus' alla tabella del reparto. L'idea è di assegnare una percentuale bonus a ciascun dipartimento e aumentare lo stipendio dei dipendenti di quella percentuale corrispondente a ciascun dipartimento.
Per ottenere ciò, eseguiremo le seguenti istruzioni ALTER per aggiungere una colonna:
ALTER TABLE departments ADD COLUMN bonus decimal(5,2);La seguente sarebbe la struttura della tabella postare le modifiche di cui sopra. Le nuove colonne verranno aggiunte con NULLO come valore.

Successivamente, scriviamo la query UPDATE che aggiornerà la percentuale di bonus per ogni reparto.

Dopo l'esecuzione dell'istruzione di cui sopra, la seguente è l'istantanea con i valori aggiornati per la colonna Bonus.

Istantanea della tabella prima:
deptNum Città Nazione Bonus uno New York stati Uniti NULLO Due Carlotta stati Uniti NULLO 3 Chicago stati Uniti NULLO 4 Londra Inghilterra NULLO 5 Berlino Germania NULLO 6 Mumbai India NULLO
Query:
UPDATE departments SET bonus = CASE WHEN deptNum = 1 THEN 3.00 WHEN deptNum= 2 THEN 5.00 WHEN deptNum= 3 THEN 8.00 WHEN deptNum= 4 THEN 10.00 WHEN deptNum= 5 THEN 13.00 WHEN deptNum= 6 THEN 15.00 WHEN deptNum= 7 THEN 18.00 END; Istantanea della tabella dopo:
deptNum Città Nazione Bonus 7 Roma Italia 18 uno New York stati Uniti 3 Due Carlotta stati Uniti 5 3 Chicago stati Uniti 8 4 Londra Inghilterra 10 5 Berlino Germania 13 6 Mumbai India quindici
# 6) AGGIORNAMENTO MySQL utilizzando la parola chiave INNER JOIN
ADERIRE è una delle parole chiave più importanti nelle istruzioni SQL. Di solito, potresti averlo usato nell'istruzione SELECT.
Esistono fondamentalmente quattro tipi di istruzioni JOIN:
- INNER JOIN: Recupera i record comuni in entrambe le tabelle.
- PARTECIPA A SINISTRA: Recupera tutti i record dalla tabella sul lato sinistro della parola chiave e i record corrispondenti dalla tabella sul lato destro della parola chiave.
- PARTECIPAZIONE DESTRA: Recupera tutti i record dalla tabella sul lato destro della parola chiave e i record corrispondenti dalla tabella sul lato sinistro della parola chiave.
- PARTECIPAZIONE ESTERNA: Recupera tutti i record da entrambe le tabelle, con i record non corrispondenti corrispondenti rappresentati come NULL.
MySQL offre un'opportunità unica di utilizzare JOIN anche nelle istruzioni UPDATE per eseguire aggiornamenti tra tabelle. Tuttavia, è limitato solo a INNER JOIN e LEFT JOIN.
La sintassi generica dell'istruzione UPDATE che utilizza la parola chiave JOIN è la seguente:
UPDATE TAB1, TAB2, (INNER JOIN | LEFT JOIN) TAB1 ON TAB1.COL1 = TAB2.COL1 SET TAB1.COL2 = TAB2.COL2, TAB2.COL3 = expr WHERE condition - Qui, l'istruzione UPDATE prevede tre elementi di dati.
- Nomi di tabella, TAB1 e TAB2, su cui viene eseguito il join.
- Tipo di JOIN che intendiamo eseguire, INTERNO o SINISTRO.
- Quindi segue il comando SET utilizzando il quale possiamo aggiornare i valori della colonna in / o TAB1 e TAB2.
- Infine, una clausola WHERE per aggiornare solo le righe che soddisfano i nostri criteri.
Per spiegare questo con un esempio, aggiungiamo un'altra colonna alla tabella Employees. Aggiungeremo la colonna 'stipendio' alla tabella Dipendenti. L'idea è di aumentare lo stipendio dei dipendenti di un valore percentuale bonus presente nella colonna bonus della tabella dei dipartimenti.
Per ottenere ciò, eseguiremo le seguenti istruzioni ALTER per aggiungere una colonna:
ALTER TABLE employees ADD COLUMN salarydecimal(7,2);Successivamente, popoleremo i due nuovi campi che abbiamo aggiunto. Dopo aver popolato i valori, il seguente è il contenuto della tabella.
Tabella dipendenti:
empNum nome di battesimo cognome e-mail deptNum Stipendio 1007 Schmitt James js@gmail.com 4 18000 1001 Andrews Jack ja@gmail.com uno 3000 1002 Schwatz Mike ms@gmail.com uno 5000 1003 Langley Margaret margaret.langley@gmail.com Due 8000 1004 Harera Sandra sh@gmail.com uno 10.000 1005 leggere Peter pl@gmail.com Due 13000 1006 Keith Jenny jk@gmail.com Due 15000 1008 Bailey Oliver oliver.bailey@gmail.com 3 21000 1009 Tazza Harry hb@gmail.com 5 24000 1010 Armstrong Giacobbe jacob.armstrong@gmail.com 4 27000
Ora, utilizziamo la parola chiave JOIN e aggiorniamo lo stipendio di tutti i dipendenti con una percentuale di bonus nella tabella dei reparti. In questo caso, deptNum è la chiave su cui verranno abbinate le due tabelle.
F Di seguito è riportato l'istantanea degli stipendi dei dipendenti al momento:

L'istantanea dalla tabella dei dipartimenti è la seguente:

Di seguito è riportata la query UPDATE che aggiornerà lo stipendio dei dipendenti in base alla percentuale di bonus nelle tabelle dei reparti in base alla colonna chiave deptNum.

Ora, controlliamo lo stipendio di ogni dipendente dopo l'escursione.

Se lo confronti con l'istantanea precedente, puoi facilmente capire la percentuale di bonus aggiunta allo stipendio.
Tutti i dipendenti devono fare il tifo!
Istantanea della tabella prima:
empNum nome di battesimo cognome e-mail deptNum Stipendio 1007 Schmitt James js@gmail.com 4 18000 1001 Andrews Jack ja@gmail.com uno 3000 1002 Schwatz Mike ms@gmail.com uno 5000 1003 Langley Margaret margaret.langley@gmail.com Due 8000 1004 Harera Sandra sh@gmail.com uno 10.000 1005 leggere Peter pl@gmail.com Due 13000 1006 Keith Jenny jk@gmail.com Due 15000 1008 Bailey Oliver oliver.bailey@gmail.com 3 21000 1009 Tazza Harry hb@gmail.com 5 24000 1010 Armstrong Giacobbe jacob.armstrong@gmail.com 4 27000
deptNum Città Nazione Bonus 7 Roma Italia 18 uno New York stati Uniti 3 Due Carlotta stati Uniti 5 3 Chicago stati Uniti 8 4 Londra Inghilterra 10 5 Berlino Germania 13 6 Mumbai India quindici
Query:
UPDATE employees INNER JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * bonus)/100) ; Istantanea della tabella dopo:
empNum nome di battesimo cognome e-mail deptNum Stipendio 1007 Schmitt James js@gmail.com 4 21780 1001 Andrews Jack ja@gmail.com uno 3182.7 1002 Schwatz Mike ms@gmail.com uno 5304.5 1003 Langley Margaret margaret.langley@gmail.com Due 8820 1004 Harera Sandra sh@gmail.com uno 10609 1005 leggere Peter pl@gmail.com Due 14332.5 1006 Keith Jenny jk@gmail.com Due 16537.5 1008 Bailey Oliver oliver.bailey@gmail.com 3 24494.4 1009 Tazza Harry hb@gmail.com 5 30645.6 1010 Armstrong Giacobbe jacob.armstrong@gmail.com 4 32670
# 7) MySQL UPDATE utilizzando la parola chiave LEFT JOIN
Come spiegato nella sezione precedente, ci sono due tipi di JOIN consentiti in MySQL UPDATE. Abbiamo già visto UPDATE utilizzando INNER JOIN.
Cominciamo con UPDATE utilizzando LEFT JOIN.
Esempio:
Abbiamo un nuovo assunto che deve ancora essere assegnato a un dipartimento. Ma dobbiamo dare a tutti i nuovi assunti un bonus dell'1%. Ora, poiché la nuova assunzione non è assegnata a nessun reparto, non saremo in grado di ottenere alcuna informazione sulla percentuale di bonus da quella tabella. In tal caso, aggiorneremo lo stipendio per i nuovi assunti utilizzando LEFT JOIN.
A tal fine, aggiungiamo un nuovo dipendente al database dei dipendenti.
INSERT INTO employees(empNum, firstName, lastName, email, deptNum, Salary) VALUES (1011, “Tom”, “Hanks”, th@gmail.com, NULL, 10000.00); Di seguito è riportato il nuovo record che abbiamo aggiunto:

Tabella dipendenti:
empNum nome di battesimo cognome e-mail deptNum Stipendio 1007 Schmitt James js@gmail.com 4 21780 1001 Andrews Jack ja@gmail.com uno 3183 1002 Schwatz Mike ms@gmail.com uno 5305 1003 Langley Margaret margaret.langley@gmail.com Due 8820 1004 Harera Sandra sh@gmail.com uno 10609 1005 leggere Peter pl@gmail.com Due 14333 1006 Keith Jenny jk@gmail.com Due 16538 1008 Bailey Oliver oliver.bailey@gmail.com 3 24494 1009 Tazza Harry hb@gmail.com 5 30646 1010 Armstrong Giacobbe jacob.armstrong@gmail.com 4 32670 1011 Hanks Tom th@gmail.com NULLO 10.000
Successivamente, daremo a Tom un bonus dell'1% in aggiunta al suo stipendio utilizzando l'istruzione UPDATE con la clausola LEFT JOIN:

Di seguito è riportato lo stipendio di TOM post-escursione.

Se lo confronti con l'istantanea precedente, puoi facilmente capire la% di bonus aggiunta allo stipendio.
Istantanea della tabella prima:
empNum nome di battesimo cognome e-mail deptNum Stipendio 1011 Tom Hanks th@gmail.com NULLO 10.000
Query:
UPDATE employees LEFT JOIN departments ON employees.deptNum = departments.deptNum SET salary = salary + ((salary * 1)/100) WHERE employees.deptNum IS NULL ; Istantanea della tabella dopo:
empNum nome di battesimo cognome e-mail deptNum Stipendio 1011 Tom Hanks th@gmail.com NULLO 10100
Lettura consigliata = >> MySQL si unisce
Domande e risposte frequenti
D # 1) Come aggiorno gli attributi in MySQL?
Risposta: Possiamo aggiornare gli attributi usando l'istruzione UPDATE di MySQL, con l'istruzione che inizia con la parola chiave UPDATE seguita dal nome della tabella. La prossima è la clausola SET seguita da un nome di colonna e una clausola WHERE.
D # 2) Come aggiorni più record in MySQL?
Risposta: Come illustrato sopra, sotto 'Aggiorna più righe' sezione, possiamo aggiornare più righe per una o più colonne con valori uguali o diversi utilizzando l'istruzione CASE.
D # 3) Possiamo usare JOIN nella query di aggiornamento in MySQL?
Risposta: Sì, MySQL consente di utilizzare JOIN nelle istruzioni UPDATE. Tuttavia, è limitato solo a INNER e LEFT JOIN.
D # 4) Da dove scaricare MySQL?
Risposta: Puoi scaricare MySQL versione 8.0 da qui: MySQL .
D # 5) Qual è il significato della clausola WHERE nell'istruzione Update?
Risposta: La clausola WHERE limita il numero di righe che dovrebbero rientrare nei criteri della clausola UPDATE.
Letture consigliate = >> Come utilizzare il file Istruzione If di MySQL
Conclusione
Pertanto, in questo tutorial, abbiamo appreso 7 diversi modi di eseguire le istruzioni UPDATE di MySQL.
- Aggiorna una singola colonna
- Aggiorna più colonne
- Aggiorna utilizzando REPLACE
- Aggiorna utilizzando SELECT
- Aggiorna più righe
- Aggiorna utilizzando INNER JOIN
- Aggiorna utilizzando LEFT JOIN
Possiamo utilizzare uno di questi, in base alle nostre esigenze.
Buona lettura!!
Lettura consigliata
- Differenza tra SQL Vs MySQL Vs SQL Server (con esempi)
- Le 40 migliori domande e risposte per i colloqui di MySQL (domande 2021)
- MongoDB Aggiorna ed elimina documento con esempi
- Esercitazione sull'istruzione C # Using e sul metodo virtuale C # con esempi
- Esercitazione sulle istruzioni condizionali C #
- Tutorial Java Reflection con esempi
- Tutorial Python DateTime con esempi
- Tutorial Bugzilla: Tutorial pratico dello strumento di gestione dei difetti









