UPDATE
kan användas för att uppdatera data i en tabell.
WHERE
sats kan användas för att specificera exakt vilka rader som ska uppdateras.
Du kan uppdatera alla rader, vissa rader eller inga, beroende på filtreringsvillkoren som tillämpas av WHERE
klausul.
En enkel uppdatering
Här är en enkel uppdatering som ändrar artistnummer 16 till Mothers of Invention :
UPDATE Artists SET ArtistName = 'Mothers of Invention' WHERE ArtistId = 16;
Och verifiera uppdateringen med en snabb SELECT
:
sqlite> SELECT * FROM Artists WHERE ArtistId = 16; ArtistId ArtistName Bio -------------------- -------------------------------------------------- ---------- 16 Mothers of Invention
Uppdatera alla rader
Du kan uppdatera alla rader i en tabell genom att helt enkelt utelämna WHERE
klausul.
Låt oss prova det:
UPDATE Artists SET Bio = 'Australian jazz band centred around polyrhythms.';
Och kontrollera det med en SELECT
uttalande:
sqlite> SELECT ArtistName, Bio FROM Artists; ArtistName Bio -------------------- -------------------------------------------------- Joe Satriani Australian jazz band centred around polyrhythms. Steve Vai Australian jazz band centred around polyrhythms. The Tea Party Australian jazz band centred around polyrhythms. Noiseworks Australian jazz band centred around polyrhythms. Wayne Jury Australian jazz band centred around polyrhythms. Mr Percival Australian jazz band centred around polyrhythms. Iron Maiden Australian jazz band centred around polyrhythms. Atmasphere Australian jazz band centred around polyrhythms. Ian Moss Australian jazz band centred around polyrhythms. Magnum Australian jazz band centred around polyrhythms. Strapping Young Lad Australian jazz band centred around polyrhythms. Slayer Australian jazz band centred around polyrhythms. Primus Australian jazz band centred around polyrhythms. Pat Metheny Australian jazz band centred around polyrhythms. Frank Gambale Australian jazz band centred around polyrhythms. Mothers of Invention Australian jazz band centred around polyrhythms. The Wiggles Australian jazz band centred around polyrhythms.
hoppsan! Jag tror inte att alla dessa band är australiensiska jazzband centrerade kring polyrytmer.
Oroa dig inte, vi kan fixa det. Vi kan ställa in den kolumnen till NULL
för alla artister som den här bion inte gäller. I det här fallet gäller bion endast för artist-ID 8
så vi nollställer alla rader där
ArtistId
är inte lika med
8
.
UPDATE Artists SET Bio = NULL WHERE ArtistId <> 8;
Och nu lagras bion bara mot rätt artist.
sqlite> SELECT ArtistName, Bio FROM Artists; ArtistName Bio -------------------- -------------------------------------------------- Joe Satriani Steve Vai The Tea Party Noiseworks Wayne Jury Mr Percival Iron Maiden Atmasphere Australian jazz band centred around polyrhythms. Ian Moss Magnum Strapping Young Lad Slayer Primus Pat Metheny Frank Gambale Mothers of Invention The Wiggles
Försiktigt!
Det är extremt bekvämt för oss att alla bios tidigare innehöll NULL
värden. Detta innebar att vi helt enkelt kunde ställa tillbaka dem till NULL
och gå därifrån.
Det här skulle ha varit mycket svårare om de andra artisterna redan hade full bios. Återställer dem till NULL
tar inte tillbaka deras gamla bios. Så var försiktig när du uppdaterar data.