Sintassi di aggiornamento di MySQL. AGGIORNAMENTO query MySQL. Modifica di un valore

AGGIORNA nome_tbl SET nome_col1=espr1 [, nome_col2=espr2, ...]

L'istruzione UPDATE aggiorna le colonne con i loro nuovi valori nelle righe di una tabella esistente. L'istruzione SET specifica quali colonne devono essere modificate e quali valori devono essere impostati in esse. La clausola WHERE, se presente, specifica quali righe vengono aggiornate. Altrimenti, tutte le righe verranno aggiornate. Se viene specificata un'espressione ORDER BY, le righe verranno aggiornate nell'ordine in essa specificato.

Se viene specificata la parola chiave LOW_PRIORITY, l'esecuzione di questo comando UPDATE viene ritardata finché gli altri client non hanno terminato la lettura della tabella.

Se viene specificata la parola chiave IGNORE, il comando di aggiornamento non verrà interrotto anche se l'aggiornamento rileva un errore di chiave duplicata. Le righe che causano conflitti non verranno aggiornate.

Se si accede a una colonna dall'espressione specificata tramite l'argomento tbl_name, il comando UPDATE utilizza il valore corrente per quella colonna. Ad esempio, il comando seguente imposta la colonna età su un valore maggiore di uno rispetto al valore corrente:

Mysql> UPDATE dati personali SET età=età+1;

Il comando UPDATE assegna i valori da sinistra a destra. Ad esempio, il comando seguente duplica la colonna età, quindi la incrementa:

Mysql> UPDATE persondata SET età=età*2, età=età+1;

Se una colonna è impostata sul suo valore corrente, MySQL lo nota e non la aggiorna.

Il comando UPDATE restituisce il numero di righe effettivamente modificate. IN Versioni di MySQL 3.22 e successive, la funzione mysql_info() dell'API C restituisce il numero di righe trovate e aggiornate e il numero di avvisi che si sono verificati quando è stato eseguito UPDATE.

In MySQL versione 3.23, puoi utilizzare LIMIT # per assicurarti che solo il numero specificato di righe sia stato modificato.

AGGIORNARE la sintassi

Sintassi della tabella singola:
AGGIORNAMENTO shya_tabletsh
IMPOSTATO nome_colonna1=espressione1 [, Nome_ colonna2=espressione2 ...]


Sintassi multitabella:

UPDATE nome_tabella [, nome_tabella...] SET nome_colonna 1=espressione1 [,nome_colonna2=espressione2...]
L'istruzione UPDATE aggiorna le colonne delle righe della tabella esistente con nuovi valori. La clausola SET elenca le colonne da modificare e i valori da assegnare ad esse. Se viene specificata la clausola WHERE, specifica quali righe devono essere aggiornate. Altrimenti, tutte le righe della tabella verranno aggiornate. Se viene specificata la clausola ORDER BY, le righe verranno aggiornate nell'ordine specificato. Il costrutto LIMIT impone un limite al numero di righe da aggiornare.
L'istruzione UPDATE supporta i seguenti modificatori:

  1. Se viene specificata la parola chiave LOW_PRIORITY, UPDATE viene ritardato fino a quando tutti gli altri client non hanno terminato di leggere la tabella.
  2. Se viene specificata la parola chiave IGNORE, l'operazione di aggiornamento non fallirà anche se si verificano errori di chiave duplicata. Le righe che causano conflitti non verranno aggiornate.

Se stai utilizzando le colonne di una tabella nome_tabella nelle espressioni, UPDATE utilizza il valore corrente delle colonne. Ad esempio, la seguente istruzione incrementa la colonna età di uno:
mysql> UPDATE dati personali SET età=età+l;
Le assegnazioni in UPDATE vengono eseguite da sinistra a destra. Ad esempio, la seguente istruzione raddoppia il valore della colonna età e poi lo incrementa di uno: mysql> AGGIORNA anagrafica SET età=età*2, età=età+l;
Se imposti il ​​valore di una colonna su qualunque esso sia, MySQL lo rileva e non lo aggiorna.
Se si aggiorna una colonna che è stata dichiarata NOT null su NULL, viene impostata sul valore predefinito appropriato per il particolare tipo di dati e incrementa di uno il contatore degli avvisi. Il valore predefinito è 0 per le colonne numeriche, la stringa vuota ("") per le colonne di caratteri e "null" per le colonne di data e ora.
UPDATE restituisce il numero di righe effettivamente aggiornate. In MySQL 3.22 e versioni successive, la funzione API C mysql_info() API restituisce il numero di righe che corrispondono alla query e che sono state aggiornate e il numero di avvisi che si sono verificati durante l'AGGIORNAMENTO.
A partire da MySQL 3.23, puoi utilizzare limit numero_di_righe per limitare l'ambito di UPDATE.
Il costrutto LIMIT funziona come segue:

  1. Prima di MySQL 4.0.13, LIMIT era un limite al numero di righe elaborate. L'operatore è uscito non appena è stato aggiornato numero_di_righe righe che soddisfano la condizione WHERE.
  2. A partire da MySQL 4.0.13, limit è il limite di corrispondenza delle stringhe. L'operatore esce non appena trova numero_di_righe righe che soddisfano la condizione WHERE, indipendentemente dal fatto che siano state effettivamente aggiornate.

Se l'istruzione UPDATE include una clausola order by, le righe vengono aggiornate nell'ordine specificato da questa clausola. ORDER BY può essere utilizzato a partire da MySQL 4.0.0.
A partire da MySQL 4.0.0, è anche possibile eseguire operazioni UPDATE che operano su più tabelle contemporaneamente:
UPDATE articoli,mese SET articoli.prezzo=mese.prezzo WHERE articoli.id-mese. id/ Questo esempio dimostra un inner join utilizzando l'operatore virgola, ma gli UPDATE su più tabelle possono utilizzare qualsiasi tipo di join consentito in Istruzione SELEZIONATA, ad esempio, LEFT JOIN.
Nota!

  • Non è possibile utilizzare ORDER BY o LIMIT nelle istruzioni UPDATE su più tabelle.
Prima di MySQL 4.0.18, era necessario avere il privilegio UPDATE su tutte le tabelle utilizzate in un UPDATE multitabella, anche se non erano effettivamente aggiornate. A partire da MySQL 4.0.18, le tabelle le cui colonne vengono solo lette ma non aggiornate devono avere solo il privilegio SELECT.
Se utilizzi un'istruzione UPDATE multitabella su tabelle InnoDB in cui sono definiti vincoli di chiave esterna, l'ottimizzatore MySQL potrebbe elaborarli in un ordine diverso da quello specificato dalle relazioni genitore-figlio. In questo caso, l'istruzione fallirà e la transazione verrà annullata. Aggiorna invece una singola tabella e fai affidamento sulla proprietà ON UPDATE, che fornisce il motore InnoDB per aggiornamento automatico tabelle correlate.

comando AGGIORNA- apporta modifiche a già registrazione esistente o in più record in una tabella SQL. Modifica i valori esistenti in una tabella o nella tabella principale della vista.

UPDATE Comando Sintassi del comando

Sintassi del comando UPDATE

comando AGGIORNA. Di base parole chiave e parametri del comando UPDATE

  • schema - un identificatore di autorizzazione, solitamente uguale a un nome utente
  • vista tabella - nome della tabella SQL, in cui i dati vengono modificati; se viene definita una vista, i dati vengono modificati nella tabella principale SQL sottomissioni
  • sottoquery_1 - sottoquery, che il server tratta allo stesso modo di una vista
  • Concolonna - colonna della tabella SQL o sottomissioni SQL, il cui valore cambia; se la colonna della tabella proviene da una frase IMPOSTATO viene omesso, il valore della colonna rimane invariato
  • espr - ; questa espressione può contenere variabili principali e variabili indicatore facoltative
  • sottoquery_2 - nuovo valore assegnato alla colonna corrispondente
  • sottoquery_3 - nuovo valore assegnato alla colonna corrispondente

DOVE- definisce l'intervallo di righe da modificare da parte di quelle per cui è presente una determinata condizione VERO; se questa frase viene omessa, tutte le righe nella tabella o nella vista verranno modificate.
Quando viene rilasciata un'approvazione, any Trigger AGGIORNAMENTO, definito in tabella.
Sottoquery. Se l'offerta IMPOSTATO contiene sottoquery, restituisce esattamente una riga per ogni riga modificata. Ogni valore nel risultato della sottoquery viene assegnato alle colonne dell'elenco corrispondenti tra parentesi. Se la sottoquery non restituisce alcuna riga, viene assegnata la colonna NULL. Sottoquery può selezionare i dati dalla tabella modificata. Offerta IMPOSTATO può combinare espressioni e sottoquery.

Comando UPDATE Esempio 1
Modifica della valutazione per tutti gli acquirenti su un valore pari a 200:

Clienti IMPOSTATO voto = 200;

Comando UPDATE Esempio 2
La sostituzione del valore di una colonna su tutte le righe di una tabella viene generalmente utilizzata raramente. Quindi nella squadra, come nella squadra ELIMINARE, puoi usare un predicato. Per effettuare la sostituzione specificata dei valori della colonna rating, per tutti i clienti serviti dal venditore Giovanni (snum=1003), occorre inserire:

Clienti IMPOSTATO rating = 200 DOVE snum = 1001;

Comando SQL UPDATE Esempio 3
In una frase IMPOSTATOÈ possibile specificare un numero qualsiasi di valori per le colonne, separati da virgole:

Imp IMPOSTATO lavoro = 'DIRETTORE', sal = sal + 1000, dip = 20 DOVE ename = 'JONES';

Comando UPDATE Esempio 4
In una frase IMPOSTATOè possibile specificare un valore NULL senza utilizzare alcuna sintassi speciale (come IS NULL). Pertanto, se desideri impostare tutte le valutazioni dei clienti da Londra (città = 'Londra') a NULL, inserisci:

Clienti IMPOSTATO valutazione = NULL WHERE città = 'Londra';

Comando UPDATE Esempio 5
Spiega l'uso della seguente sintassi del comando:

  • Entrambe le forme di frase IMPOSTATO insieme in un'unica affermazione.
  • Sottoquery.
  • Una clausola WHERE che limita l'intervallo di righe che possono essere modificate.

Emp a IMPOSTATO dipartimento =
(SELEZIONARE no reparto FROM reparto DOVE loc = 'BOSTON'), (sal, comm) = ( SELEZIONARE 1.1*AVG(sal), 1.5*AVG(comm) FROM emp b WHERE a.dip = b.dip) WHERE dip IN ( SELEZIONARE no dip FROM dipartimento WHERE loc = 'DALLAS' OR loc = 'DETROIT');

La dichiarazione di cui sopra fa quanto segue:

  • Modifica solo i dipendenti che lavorano a Dallas o Detroit
  • Imposta il valore della colonna dip per i dipendenti di Boston
  • Fissa lo stipendio di ciascun dipendente a 1,1 volte lo stipendio medio dell'intero dipartimento
  • Imposta la commissione di ciascun dipendente a 1,5 volte la commissione media dell'intero dipartimento

Se dobbiamo modificare o aggiornare i dati in MySQL, possiamo utilizzare il comando SQL UPDATE per funzionare. ,

grammatica

Di seguito è riportato il comando UPDATE da modificare Dati MySQL Dati del foglio Sintassi SQL generale:

UPDATE nome_tabella SET campo1=nuovo-valore1, campo2=nuovo-valore2

  • Puoi aggiornare uno o più campi contemporaneamente.
  • È possibile specificare qualsiasi condizione nella clausola WHERE.
  • Puoi anche aggiornare i dati in una tabella separata.

Quando è necessario aggiornare i dati specificati nelle righe di una tabella, INEKE è molto utile.

Riga di comando per aggiornare i dati

Di seguito aggiorneremo il w3big_tbl specificato nella tabella dati utilizzando il comando SQL UPDATE:

esempi

L'esempio seguente aggiornerà la tabella dati come valore del campo w3big_title w3big_id 3:

# mysql -u root -p password; Inserisci la password:******* mysql> usa w3big; Database cambiato mysql> AGGIORNA w3big_tbl -> SET w3big_title="Learning JAVA" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Utilizza lo script PHP per aggiornare i dati

La funzione PHP per utilizzare mysql_query() per eseguire istruzioni SQL, è possibile utilizzare l'istruzione SQL UPDATE o INEKE non si applica.

Questa funzione in MySQL> riga di comando l'effetto dell'esecuzione di istruzioni SQL è lo stesso.

esempi

L'esempio seguente aggiornerà i dati w3big_id nel campo w3big_title 3.