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 FROM
klíčová slova. - Zadruhé přidejte podmínku vyhledávání do
WHERE
klauzule k identifikaci řádků k odstranění.WHERE
klauzule je volitelná částDELETE
prohlášení. Pokud vynecháteWHERE
klauzuleDELETE
pří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.