Резюме :този урок ви показва как да използвате SQLite DELETE
оператор за премахване на редове от таблица.
Въведение в SQLite DELETE
изявление
Научихте как да вмъкнете нов ред в таблица и да актуализирате съществуващите данни от таблица. Понякога трябва да премахнете редове от таблица. В този случай използвате SQLite DELETE
изявление.
SQLite DELETE
оператор ви позволява да изтриете един ред, няколко реда и всички редове в таблица. Синтаксисът на SQLite DELETE
изявлението е както следва:
DELETE FROM table
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
В този синтаксис:
- Първо посочете името на таблицата, от която искате да премахнете редове след
DELETE FROM
ключови думи. - Второ, добавете условие за търсене в
WHERE
клауза за идентифициране на редовете за премахване.WHERE
Клаузата е незадължителна част отDELETE
изявление. Ако пропуснетеWHERE
клауза,DELETE
оператор ще изтрие всички редове в таблицата.
SQLite също така предоставя разширение за DELETE
изявление чрез добавяне на ORDER BY
и LIMIT
клаузи. Ако компилирате SQLite с опцията за време на компилиране SQLITE_ENABLE_UPDATE_DELETE_LIMIT, можете да използвате ORDER BY
и LIMIT
клауза в DELETE
изявление като следния формуляр:
DELETE FROM table
WHERE search_condition
ORDER BY criteria
LIMIT row_count OFFSET offset;
Code language: SQL (Structured Query Language) (sql)
ORDER BY
клаузата сортира редовете, филтрирани от предходното search_condition
в WHERE
клауза и LIMIT
клаузата определя броя на редовете, които да бъдат изтрити.
Забележете, че когато използвате DELETE
изявление без WHERE
клауза в таблица, която няма тригери. SQLite ще изтрие всички редове наведнъж, вместо да посещава и изтрива всеки отделен ред. Тази функция е известна като оптимизация за съкращаване.
SQLite DELETE
примери за изрази
Ще използваме artists_backup
таблица, създадена в урока как да вмъкнете редове в таблицата.
Ако не сте следвали този урок, можете да създадете artists_backup
таблица и вмъкнете данни в нея, като използвате следния скрипт:
-- 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)
Следното изявление връща всички редове от artists_backup
таблица:
SELECT
artistid,
name
FROM
artists_backup;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Имаме 280 реда в artists_backup
таблица.
За да премахнете изпълнител с идентификатор 1, използвате следното изявление:
DELETE FROM artists_backup
WHERE artistid = 1;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Защото използваме artistid
за да идентифицира изпълнителя, изявлението премахна точно 1 ред.
Да предположим, че искате да изтриете изпълнители, чиито имена съдържат думата Santana
:
DELETE FROM artists_backup
WHERE name LIKE '%Santana%';
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Има 9 реда, чиито стойности са в name
колона съдържа думата Santana
следователно тези 9 реда бяха изтрити.
За да премахнете всички редове в artists_backup
таблица, просто трябва да пропуснете WHERE
клауза като следното изявление:
DELETE FROM artists_backup;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
В този урок научихте как да използвате SQLite DELETE
оператор за премахване на редове в таблица.