Shrnutí :tento tutoriál vám ukáže, jak používat SQLite DELETE příkaz k odstranění řádků z tabulky.
Úvod do SQLite DELETE prohlášení
Naučili jste se vložit nový řádek do tabulky a aktualizovat stávající data tabulky. Někdy je potřeba z tabulky odstranit řádky. V tomto případě použijete SQLite DELETE prohlášení.
SQLite DELETE umožňuje odstranit jeden řádek, více řádků a všechny řádky v tabulce. Syntaxe SQLite DELETE prohlášení je následující:
DELETE FROM table
WHERE search_condition;Code language: SQL (Structured Query Language) (sql) V této syntaxi:
- Nejprve zadejte název tabulky, ze které chcete odstranit řádky za
DELETE FROMklíčová slova. - Zadruhé přidejte podmínku vyhledávání do
WHEREklauzule k identifikaci řádků k odstranění.WHEREklauzule je volitelná částDELETEprohlášení. Pokud vynecháteWHEREklauzuleDELETEpříkaz smaže všechny řádky v tabulce.
SQLite také poskytuje rozšíření DELETE přidáním ORDER BY a LIMIT doložky. Pokud zkompilujete SQLite s možností kompilace SQLITE_ENABLE_UPDATE_DELETE_LIMIT, můžete použít ORDER BY a LIMIT klauzule v DELETE prohlášení jako v následujícím tvaru:
DELETE FROM table
WHERE search_condition
ORDER BY criteria
LIMIT row_count OFFSET offset;Code language: SQL (Structured Query Language) (sql)
ORDER BY klauzule seřadí řádky filtrované podle předchozí search_condition v WHERE klauzule a LIMIT klauzule určuje počet řádků, které mají být odstraněny.
Všimněte si, že když použijete DELETE příkaz bez WHERE klauzule na tabulce, která nemá žádné spouštěče. SQLite odstraní všechny řádky najednou místo toho, aby navštívil a odstranil každý jednotlivý řádek. Tato funkce je známá jako optimalizace zkrácení.
SQLite DELETE příklady příkazů
Použijeme artists_backup tabulka vytvořená v návodu jak vložit řádky do tabulky.
Pokud jste se neřídili tímto návodem, můžete vytvořit artists_backup tabulky a vložte do ní data pomocí následujícího skriptu:
-- 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)
Následující příkaz vrátí všechny řádky z artists_backup tabulka:
SELECT
artistid,
name
FROM
artists_backup;Code language: SQL (Structured Query Language) (sql) Zkuste to
V artists_backup máme 280 řádků tabulka.
Chcete-li odebrat interpreta s ID 1, použijte následující příkaz:
DELETE FROM artists_backup
WHERE artistid = 1;Code language: SQL (Structured Query Language) (sql) Zkuste to
Protože používáme artistid pro identifikaci umělce tento údaj odstranil přesně 1 řádek.
Předpokládejme, že chcete smazat umělce, jejichž jména obsahují slovo Santana :
DELETE FROM artists_backup
WHERE name LIKE '%Santana%';Code language: SQL (Structured Query Language) (sql) Zkuste to
Existuje 9 řádků, jejichž hodnoty jsou v name obsahovat slovo Santana proto bylo těchto 9 řádků odstraněno.
Chcete-li odstranit všechny řádky v artists_backup tabulky, stačí vynechat WHERE klauzule jako následující prohlášení:
DELETE FROM artists_backup;Code language: SQL (Structured Query Language) (sql) Zkuste to
V tomto tutoriálu jste se naučili používat SQLite DELETE příkaz k odstranění řádků v tabulce.