При роботі з базами даних часто виникає необхідність у видаленні одного або кількох рядків даних. Для реалізації цього існує спеціальний оператор SQL - Delete.
Синтаксис Delete
Однією з часто використовуваних операцій при роботі з базами даних є оператор видалення певної кількості рядків. Для того щоб прибрати зайві записи з таблиці, досить скористатися спеціальною функцією SQL - D elete .
Синтаксис цього оператора аналогічний процедур вставки і редагування записів. Після ключового слова DELETE слід конструкція, яка вказує таблицю, в якій буде здійснено вилучення - FROM ім'я таблиці. Після цього йде необов'язкова частина структури синтаксису оператора, яка може містити вказівки, однозначно визначають одну або кілька рядків.
DELETE FROM [WHERE ]. Можливе пропозиція починається з ключового слова "WHERE", за яким слід набір предикатів. У ньому можна вказати як явне значення певного поля, позначивши його у вигляді єдиного або перерахуванням, так і певний діапазон або умова. У предикате також можна використовувати вкладені умови, наприклад, видаляти тільки ті записи, які містяться або відсутні в іншій таблиці.
Приклад видалення декількох або всіх записів
Щоб видалити запис, необхідно використовувати необов'язкову частина структури функції Delete. MS SQL підтримує лише одну вказівку даних - за допомогою ключового слова WHERE. Тому параметри пошуку шуканого рядка слід вказувати тільки після нього.
Якщо необхідно очистити таблицю, додаткової частиною структури користуватися не обов'язково, достатньо просто вказати ім'я таблиці у наведеному вище синтаксис SQL Delete. Приклад видалення всіх записів наведено далі: DELETE FROM "таблица_1". Даний запит справить очищення таблиці з ім'ям "таблица_1". Варто відзначити, що в цьому випадку видалення самої таблиці не станеться - для цього необхідно скористатися іншими засобами мови SQL.
У разі якщо необхідно видалити лише ті записи, які відповідають певній вимозі, необхідно додати оператор умови. Наприклад, в наступному прикладі функція SQL Delete зробить видалення всіх рядків таблиці "Персонал", у яких в полі "Ім'я" знаходиться значення "Іван":
DELETE FROM "Персонал" WHERE Name = "Іван". При необхідності, можна вказувати декілька умов в одному запиті, об'єднуючи їх за допомогою логічних "І" та "АБО". У наступному прикладі будуть видалені всі записи, в яких ім'я "Іван" або "Олег": DELETE FROM "Персонал" WHERE Name = "Іван" OR "Назва" = "Олег".
Приклад видалення запису
Однак при видаленні не завжди потрібно видалити всі рядки, що задовольняють умові. Щоб домогтися стирання даних лише визначеного числа рядків, до структури функції SQL Delete необхідно додати ключове слово LIMIT, після чого вказати явне значення рядків, яке необхідно видалити.
У наступному прикладі з таблиці "Персонал" буде видалено тільки два записи про співробітників, яких звуть Іван: DELETE FROM "Персонал" WHERE Name = "Іван" LIMIT 2. Варто відзначити, що при виконанні операції видалення рядків слід звертати увагу на правильність написання запитів. У випадку помилки в синтаксисі або умови може статися надмірне видалення рядків, повернути які в таблицю автоматично буде практично неможливо.