UPDATE
sætning kan bruges til at opdatere data i en tabel.
WHERE
klausul kan bruges til at specificere præcis hvilke rækker der skal opdateres.
Du kan opdatere alle rækker, nogle rækker eller ingen, afhængigt af de filtreringsbetingelser, der anvendes af WHERE
klausul.
En simpel opdatering
Her er en simpel opdatering, der ændrer kunstnernummer 16 til Opfindelsens mødre :
UPDATE Artists SET ArtistName = 'Mothers of Invention' WHERE ArtistId = 16;
Og bekræft opdateringen med en hurtig SELECT
:
sqlite> SELECT * FROM Artists WHERE ArtistId = 16; ArtistId ArtistName Bio -------------------- -------------------------------------------------- ---------- 16 Mothers of Invention
Opdater alle rækker
Du kan opdatere alle rækker i en tabel ved blot at udelade WHERE
klausul.
Lad os prøve det:
UPDATE Artists SET Bio = 'Australian jazz band centred around polyrhythms.';
Og tjek det med en SELECT
erklæring:
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.
Ups! Jeg tror ikke, at alle disse bands er australske jazzbands centreret omkring polyrytmer.
Bare rolig, det kan vi ordne. Vi kan sætte den kolonne til NULL
for alle kunstnere, som denne bio ikke gælder for. I dette tilfælde gælder bio kun for kunstner-id 8
så vi nulstiller alle rækker, hvor
ArtistId
er ikke lig med
8
.
UPDATE Artists SET Bio = NULL WHERE ArtistId <> 8;
Og nu er bio kun gemt mod den rigtige kunstner.
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
Forsigtig!
Det er yderst bekvemt for os, at alle bios tidligere indeholdt NULL
værdier. Dette betød, at vi simpelthen kunne sætte dem tilbage til NULL
og gå væk.
Dette ville have været meget vanskeligere, hvis de andre kunstnere allerede havde fuld bios. Sætter dem tilbage til NULL
bringer ikke deres gamle bios tilbage. Så vær forsigtig, når du opdaterer data.