Рядки з таблиці можна вилучити з допомогою команди DELETE. По цій команді вилучаються рядки повністю, а не окремі поля.
Синтаксис команди такий:
DELETE [FROM] <ім`я таблиці> [WHERE <умова>]
Наприклад:
DELETE FROM customer
Якщо не вказані умови вибору, то вилучаються всі записи.
Найчастіше з таблиці потрібно вилучити тільки деякі рядки, ті, що відповідають заданій умові.
DELETE FROM customer WHERE city=‘Київ’
У FoxPro записи не видаляються фізично із таблиці, а тільки помічаються для видалення. Для фізичного видалення записів використовується команда PACK. З помічених для видалення записів можна зняти відмітку за допомогою RECALL.
В предикаті команди DELETE можна використовувати підзапити. Це дає можливість формувати досить складні критерії вилучення рядків, це потребує особливої уваги і обережності.
Наприклад, якщо потрібно закрити лондонський офіс, то можна використати такий запит для вилучення всіх покупців цього офісу:
DELETE FROM customer
WHERE snum=ANY
(SELECT snum FROM Salespeople WHERE city=‘London’)
Можна використовувати зв`язані підзапити. Наприклад, можна знайти найменше замовлення за кожний день і вилучити продавця, якому таке замовлення було адресовано.
DELETE FROM Salespeople
WHERE snum IN
(SELECT snum FROM Zakaz a
WHERE amt=
( SELECT MIN (amt)
FROM Zakaz b
WHERE a.zdate=b.zdate))