Delete (SQL)
Delete — у мовах, подібних SQL, DML-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом Where. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів.
- У СУБД, що підтримують тригери, операція Delete може викликати їх спрацювання;
- За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності;
- У СУБД, що підтримують транзакції, виконання операції Delete повинно бути підтверджено (COMMIT), або спростовано (ROLLBACK) викликом відповідних операцій.
Синтаксис
Загальний синтаксис команди:
DELETE FROM <Назва таблиці> WHERE <Умова відбору записів>
Наслідком виконання такої команди буде видалення тих рядків з таблиці <Назва таблиці>, які відповідають умові <Умова відбору записів>. При цьому ніякого результату команда не повертає і, отже, не може бути використана як параметр у команді SELECT.
Видалення записів з декількох таблиць
При видаленні можна задавати конструкції JOIN зв'язують кілька сторінок, аналогічно тому, як зв'язуються таблиці в запитах вибірки SELECT:
DELETE <Назва таблиці для видалення>
-> FROM <Назва таблиці1> JOIN <Назва таблиці2> ON <умова об'єднання>;
Приклад:
DELETE ab, b
FROM Authors AS a, AuthorArticle AS ab, Articles AS b
WHERE a.AuthID=ab.AuthID AND ab.ArticleID=b.ArticleID
AND AuthorLastName='Henry';
Пов'язані команди
Видалення всіх записів з таблиці при наявності зовнішніх ключів і механізм транзакцій може зайняти тривалий час. Для повного очищення таблиці може бути використана операція TRUNCATE.