sql >> Databasteknik >  >> RDS >> SQLite

SQLite Ta bort

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 av DELETE påstående. Om du utelämnar WHERE satsen DELETE 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.


  1. nvarchar-konkatenering / index / nvarchar(max) oförklarligt beteende

  2. ta bort dubbletter av rader från Oracle

  3. 4 Fantastiska SQL Server-övervakningsresurser för databasadministratörer

  4. 2 sätt att återvända Julian Day i SQLite