Sammanfattning :denna handledning visar hur du använder SQLite DELETE
uttalande för att ta bort rader från en tabell.
Introduktion till SQLite DELETE
uttalande
Du har lärt dig hur du infogar en ny rad i en tabell och uppdaterar befintliga data i en tabell. Ibland måste du ta bort rader från en tabell. I det här fallet använder du SQLite DELETE
uttalande.
SQLite DELETE
kan du ta bort en rad, flera rader och alla rader i en tabell. Syntaxen för SQLite DELETE
uttalandet är som följer:
DELETE FROM table
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
I denna syntax:
- Ange först namnet på tabellen som du vill ta bort rader efter
DELETE FROM
sökord. - För det andra, lägg till ett sökvillkor i
WHERE
klausul för att identifiera raderna som ska tas bort.WHERE
satsen är en valfri del avDELETE
påstående. Om du utelämnarWHERE
satsenDELETE
uttalandet tar bort alla rader i tabellen.
SQLite tillhandahåller också ett tillägg till DELETE
uttalande genom att lägga till ORDER BY
och LIMIT
klausuler. Om du kompilerar SQLite med alternativet SQLITE_ENABLE_UPDATE_DELETE_LIMIT kompileringstid kan du använda ORDER BY
och LIMIT
sats i DELETE
uttalande som följande form:
DELETE FROM table
WHERE search_condition
ORDER BY criteria
LIMIT row_count OFFSET offset;
Code language: SQL (Structured Query Language) (sql)
ORDER BY
satsen sorterar raderna som filtrerats av föregående search_condition
i WHERE
satsen och LIMIT
sats anger antalet rader som ska raderas.
Observera att när du använder DELETE
uttalande utan en WHERE
klausul på en tabell som inte har några triggers. SQLite kommer att ta bort alla rader i ett skott istället för att besöka och ta bort varje enskild rad. Denna funktion är känd som trunkeringsoptimering.
SQLite DELETE
exempel på uttalanden
Vi kommer att använda artists_backup
tabell skapad i handledning för hur man infogar rader i tabeller.
Om du inte följde den handledningen kan du skapa artists_backup
tabell och infoga data i den med följande skript:
-- 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öljande sats returnerar alla rader från artists_backup
tabell:
SELECT
artistid,
name
FROM
artists_backup;
Code language: SQL (Structured Query Language) (sql)
Prova det
Vi har 280 rader i artists_backup
bord.
För att ta bort en artist med id 1 använder du följande uttalande:
DELETE FROM artists_backup
WHERE artistid = 1;
Code language: SQL (Structured Query Language) (sql)
Prova det
Eftersom vi använder artistid
För att identifiera artisten tog uttalandet bort exakt 1 rad.
Anta att du vill ta bort artister vars namn innehåller ordet Santana
:
DELETE FROM artists_backup
WHERE name LIKE '%Santana%';
Code language: SQL (Structured Query Language) (sql)
Prova det
Det finns 9 rader vars värden finns i name
kolumnen innehåller ordet Santana
därför togs dessa 9 rader bort.
För att ta bort alla rader i artists_backup
tabellen behöver du bara utelämna WHERE
klausul som följande uttalande:
DELETE FROM artists_backup;
Code language: SQL (Structured Query Language) (sql)
Prova det
I den här handledningen har du lärt dig hur du använder SQLite DELETE
uttalande för att ta bort rader i en tabell.