sql >> Databáze >  >> RDS >> SQLite

Smazat SQLite

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á část DELETE prohlášení. Pokud vynecháte WHERE klauzule DELETE 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.


  1. Jak vytvořit databázový diagram v Accessu

  2. Typ Java pro datum/čas při použití Oracle Date s režimem spánku

  3. Zploštění protínajících se časových úseků

  4. Výběrový dotaz s limitem posunu je příliš pomalý