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 FROMsøgeord. - For det andet skal du tilføje en søgebetingelse i
WHEREklausul for at identificere de rækker, der skal fjernes.WHEREklausulen er en valgfri del afDELETEudmelding. Hvis du udeladerWHEREklausulen,DELETEsæ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.