sql >> Database teknologi >  >> RDS >> SQLite

SQLite Slet

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 af DELETE udmelding. Hvis du udelader WHERE 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.


  1. ODBC-opkald mislykkedes med lagret procedure - Send forespørgsel igennem

  2. Databasebelastningsbalancering i skyen - MySQL Master Failover med ProxySQL 2.0:Part One (Deployment)

  3. Hvornår kører SQLiteOpenHelper onCreate() / onUpgrade()?

  4. Lokale og globale midlertidige tabeller i SQL Server