Questo articolo contiene UPDATE
di base di SQL istruzioni che i principianti possono utilizzare per aggiornare i dati nelle tabelle del database.
Aggiorna una singola colonna
Ecco un esempio di base di SQL UPDATE
dichiarazione.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
In questo caso abbiamo aggiornato il valore di una singola colonna denominata LastName
.
Il UPDATE
l'istruzione inizia con UPDATE
, seguito dal nome della tabella (ovvero la tabella che contiene i dati che desideri aggiornare).
Quindi ha il SET
parola chiave, seguita dalla colonna che vuoi aggiornare e dal nuovo valore, separato da un uguale (=
) operatore.
Dovresti sempre includere un WHERE
clausola, a meno che non si desideri aggiornare tutte le righe con lo stesso valore.
Sì, avete letto bene. Omettendo il WHERE
La clausola aggiornerà tutte le righe con lo stesso valore.
La maggior parte dei sistemi di gestione dei database (DBMS) ha varie altre opzioni che puoi utilizzare con UPDATE
dichiarazione, ma quelli qui elencati sono quelli più comunemente usati.
Aggiorna più colonne
Per aggiornare più colonne, separa ciascuna colonna/coppia di valori con una virgola.
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
Esempio
In questo esempio, aggiorniamo una tabella.
Per prima cosa, selezioniamo il contenuto della tabella.
SELECT * FROM Owners;
Risultato:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Simpson | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Nancy Simpson si è sposata di recente e ha cambiato il suo cognome, quindi aggiorneremo Simpson
a Stallone
.
Ora aggiorniamo quella colonna, quindi selezioniamo di nuovo la tabella.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
Risultato:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Possiamo vedere che la colonna è stata aggiornata come specificato.
Aggiorna più colonne
Ecco un esempio di aggiornamento di più colonne.
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
Risultato:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Biden | (349) 611-8908 | [email protected] | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
In questo caso abbiamo aggiornato il cognome e l'indirizzo email del proprietario 4.
Attenzione! Dimenticando il WHERE
Clausola
Il UPDATE
affermazione può essere un'affermazione molto pericolosa se non mantieni il tuo ingegno su di te. Se ometti il WHERE
clausola, aggiornerai tutti righe nella tabella.
Riprendiamo l'esempio precedente, ma questa volta dimenticheremo di includere il WHERE
clausola.
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
Risultato:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Stallone | (308) 555-0100 | [email protected] | | 2 | Bart | Stallone | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Stallone | (349) 611-8908 | NULL | | 5 | Woody | Stallone | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Ops! Ora il cognome di tutti è Stallone!
Potrebbero esserci momenti in cui intendi effettivamente aggiornare tutte le righe della tabella, ma quei tempi sono generalmente piuttosto rari.
Quando esegui query ad hoc, potresti voler eseguire un rapido SELECT
istruzione che utilizza la stessa condizione del tuo UPDATE
operazione prima di eseguire effettivamente l'UPDATE
operazione.
SELECT * FROM Owners
WHERE OwnerId = 4;
Risultato:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Questo ci mostra la riga esatta che verrà aggiornata. Una volta che siamo soddisfatti che sta restituendo la riga corretta, possiamo procedere e utilizzare lo stesso WHERE
clausola nel UPDATE
dichiarazione.