Oversigt :denne vejledning viser dig, hvordan du bruger SQLite DELETE
sætning for at fjerne rækker fra en tabel.
Introduktion til SQLite DELETE
erklæring
Du har lært, hvordan du indsætter en ny række i en tabel og opdaterer eksisterende data i en tabel. Nogle gange skal du fjerne rækker fra en tabel. I dette tilfælde bruger du SQLite DELETE
erklæring.
SQLite DELETE
sætning giver dig mulighed for at slette en række, flere rækker og alle rækker i en tabel. Syntaksen for SQLite DELETE
erklæringen er som følger:
DELETE FROM table
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
I denne syntaks:
- Først skal du angive navnet på den tabel, som du vil fjerne rækker efter
DELETE FROM
søgeord. - For det andet skal du tilføje en søgebetingelse i
WHERE
klausul for at identificere de rækker, der skal fjernes.WHERE
klausulen er en valgfri del afDELETE
udmelding. Hvis du udeladerWHERE
klausulen,DELETE
sætningen vil slette alle rækker i tabellen.
SQLite giver også en udvidelse til DELETE
sætning ved at tilføje ORDER BY
og LIMIT
klausuler. Hvis du kompilerer SQLite med SQLITE_ENABLE_UPDATE_DELETE_LIMIT muligheden for kompileringstid, kan du bruge ORDER BY
og LIMIT
klausul i DELETE
erklæring som følgende form:
DELETE FROM table
WHERE search_condition
ORDER BY criteria
LIMIT row_count OFFSET offset;
Code language: SQL (Structured Query Language) (sql)
ORDER BY
klausul sorterer rækkerne filtreret efter den foregående search_condition
i WHERE
klausulen og LIMIT
klausul angiver antallet af rækker, der skal slettes.
Bemærk, at når du bruger DELETE
sætning uden en WHERE
klausul på en tabel, der ikke har nogen udløsere. SQLite vil slette alle rækker i ét skud i stedet for at besøge og slette hver enkelt række. Denne funktion er kendt som trunkeringsoptimering.
SQLite DELETE
udsagnseksempler
Vi vil bruge artists_backup
tabel oprettet i hvordan man indsætter rækker i tabel selvstudiet.
Hvis du ikke fulgte denne vejledning, kan du oprette artists_backup
tabel og indsæt data i den ved hjælp af følgende script:
-- create artists backup table
CREATE TABLE artists_backup(
artistid INTEGER PRIMARY KEY AUTOINCREMENT,
name NVARCHAR
);
-- populate data from the artists table
INSERT INTO artists_backup
SELECT artistid,name
FROM artists;
Code language: SQL (Structured Query Language) (sql)
Følgende sætning returnerer alle rækker fra artists_backup
tabel:
SELECT
artistid,
name
FROM
artists_backup;
Code language: SQL (Structured Query Language) (sql)
Prøv det
Vi har 280 rækker i artists_backup
tabel.
For at fjerne en kunstner med id 1, bruger du følgende sætning:
DELETE FROM artists_backup
WHERE artistid = 1;
Code language: SQL (Structured Query Language) (sql)
Prøv det
Fordi vi bruger artistid
for at identificere kunstneren fjernede erklæringen nøjagtig 1 række.
Antag, at du vil slette kunstnere, hvis navne indeholder ordet Santana
:
DELETE FROM artists_backup
WHERE name LIKE '%Santana%';
Code language: SQL (Structured Query Language) (sql)
Prøv det
Der er 9 rækker, hvis værdier i name
kolonne indeholde ordet Santana
derfor blev disse 9 rækker slettet.
For at fjerne alle rækker i artists_backup
tabel, skal du blot udelade WHERE
klausul som følgende udsagn:
DELETE FROM artists_backup;
Code language: SQL (Structured Query Language) (sql)
Prøv det
I denne øvelse har du lært, hvordan du bruger SQLite DELETE
sætning for at fjerne rækker i en tabel.