Con il comando UPDATE di MariaDB puoi mo­di­fi­ca­re i dati già esistenti in una tabella. In questo modo ga­ran­ti­sci che le in­for­ma­zio­ni nel database siano sempre coerenti e ag­gior­na­te.

A cosa serve il comando UPDATE in MariaDB?

Il comando UPDATE in MariaDB modifica i valori di una o più colonne di una tabella. A dif­fe­ren­za dei comandi INSERT o DELETE, UPDATE non crea nuove righe né elimina quelle esistenti: modifica esclu­si­va­men­te i dati già presenti. È quindi la soluzione ideale in tutti i casi in cui le in­for­ma­zio­ni cambiano nel tempo, ma la struttura del database rimane invariata.

Nelle ap­pli­ca­zio­ni che usano un database, UPDATE viene spesso eseguito in back­ground, ad esempio per ag­gior­na­re i profili utente o gestire l’avan­za­men­to di tran­sa­zio­ni. Tra gli utilizzi tipici ci sono la cor­re­zio­ne di errori di in­se­ri­men­to, l’ag­gior­na­men­to delle giacenze di magazzino e la modifica degli stati degli ordini. È fon­da­men­ta­le spe­ci­fi­ca­re con pre­ci­sio­ne quali colonne vanno ag­gior­na­te, al­tri­men­ti il comando potrebbe agire su tutta la tabella. Per questo motivo, definire cor­ret­ta­men­te i filtri nel comando UPDATE è una prassi es­sen­zia­le per mantenere il controllo sui dati.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

Sintassi del comando UPDATE

La sintassi base di UPDATE in MariaDB prevede tre elementi: il nome della tabella, la clausola SET con i campi da mo­di­fi­ca­re e una clausola WHERE opzionale per se­le­zio­na­re le righe in­te­res­sa­te.

UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
sql

Parametri e argomenti del comando UPDATE

Il comando UPDATE in MariaDB accetta diversi parametri che con­sen­to­no di con­trol­la­re con pre­ci­sio­ne quali dati devono essere mo­di­fi­ca­ti e in quale forma. Tra gli elementi più im­por­tan­ti figurano il nome della tabella, SET, WHERE, ORDER BY e LIMIT.

  • table_name: nome della tabella in cui desideri mo­di­fi­ca­re i dati.
  • SET: definisce una o più colonne che ri­ce­ve­ran­no nuovi valori. È anche possibile uti­liz­za­re funzioni o ope­ra­zio­ni arit­me­ti­che, ad esempio SET views = views + 1.
  • WHERE: filtra le righe in­te­res­sa­te in base a una con­di­zio­ne. Senza WHERE, MariaDB modifica tutte le righe della tabella.
  • ORDER BY: ordina le righe prima dell’ag­gior­na­men­to. Ciò è par­ti­co­lar­men­te utile quando si utilizza LIMIT.
  • LIMIT: limita il numero di righe mo­di­fi­ca­te, ad esempio alle prime cinque cor­ri­spon­den­ze.
  • Clausole JOIN: in scenari più complessi, è possibile combinare UPDATE con il comando JOIN per elaborare dati pro­ve­nien­ti da più tabelle. Questa variante consente di apportare modifiche con­di­zio­na­te in base al contenuto delle tabelle collegate.
  • SUBSELECT o sot­to­que­ry: è possibile uti­liz­za­re sot­to­que­ry nella clausola SET o WHERE per acquisire valori dinamici da altre tabelle.
  • Funzioni e operatori: all’interno di SET è possibile uti­liz­za­re funzioni, ope­ra­zio­ni arit­me­ti­che, con­di­zio­ni (IF()) o con­ca­te­na­zio­ni (CONCAT()) per generare contenuti in modo dinamico.

Esempi di utilizzo di UPDATE in MariaDB

Il comando UPDATE si applica a molti scenari reali: puoi cor­reg­ge­re dati errati, ag­gior­na­re in­for­ma­zio­ni che cambiano nel tempo o applicare regole au­to­ma­ti­che basate sullo stato di un processo. Di seguito ti mostriamo alcuni esempi pratici.

Ag­gior­na­re un singolo valore

La clausola WHERE assicura che venga in­te­res­sa­to solo un de­ter­mi­na­to record. In questo esempio mo­di­fi­chia­mo l’indirizzo e-mail del cliente con ID “42”.

UPDATE customers
SET email = 'new.email@example.com'
WHERE customer_id = 42;
sql

Mo­di­fi­ca­re più colonne con­tem­po­ra­nea­men­te

In questo caso ag­gior­nia­mo sia il prezzo (price) che la di­spo­ni­bi­li­tà in magazzino. Il valore stock viene ridotto di 1, ad esempio dopo una vendita.

UPDATE products
SET price = 19.99, stock = stock - 1
WHERE product_id = 1001;
sql

Ag­gior­na­re i valori per più righe

Questa query cambia lo stato di tutti gli ordini in “shipped” se è presente una data di spe­di­zio­ne e lo stato attuale è ancora “pro­ces­sing”.

UPDATE orders
SET status = 'shipped'
WHERE shipping_date IS NOT NULL AND status = 'processing';
sql

Mo­di­fi­ca­re solo un de­ter­mi­na­to numero di righe

In questo esempio di­sat­ti­via­mo i 100 utenti con i login più vecchi. ORDER BY e LIMIT per­met­to­no di con­trol­la­re l’ordine e la quantità di righe mo­di­fi­ca­te.

UPDATE users
SET active = 0
ORDER BY last_login ASC
LIMIT 100;
sql

Uti­liz­za­re UPDATE di MariaDB con con­di­zio­ne IF()

La funzione IF() permette di applicare logiche con­di­zio­na­li di­ret­ta­men­te nella clausola SET. Nell’esempio seguente, MariaDB controlla il prezzo di ogni prodotto: se è superiore a 100, applica uno sconto del 15%, al­tri­men­ti del 5%.

UPDATE products
SET discount = IF(price > 100, 0.15, 0.05);
sql
Managed Database Services
Con­cen­tra­ti sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni fles­si­bi­li e su misura
  • Data center situati in Europa
Vai al menu prin­ci­pa­le