Для удаления данных из таблиц используется команда DELETE. Команда DELETE предназначена не для того, чтобы удалять значения отдельных столбцов, а для того, чтобы удалять целые записи. Оператор DELETE следует применять с осторожностью — слишком уж безотказно он работает.
Чтобы удалить одну или несколько записей из таблицы, используйте следующий синтаксис оператора DELETE.
DELETE FROM имя_таблицы
[WHERE условие];
Если ключевое слово WHERE в операторе DELETE опущено, будут удалены все строки таблицы. Поэтому практически всегда необходимо использовать ключевое слово WHERE в операторе DELETE.
В качестве примера удалим все сведенья о билетах с датой вылета ранее 1 января 2000 года: [57]
DELETE FROM TICKET
WHERE TC_FL_DATE<'01.01.2000'
При использовании команды DELETE бывает полезно использование вложенных запросов SELECT. Удалим из таблицы PERSON тех людей кто ни разу не летал в качестве пассажира или члена экипажа. Чтобы выполнить это, нужно найти коды личностей всех членов экипажа (из таблицы EQUIPAGE) и всех пассажиров с билетами (из таблицы TICKET). Получаем запрос на удаление: [58]
DELETE FROM PERSON
WHERE NOT PR_CODEIN
(SELECT EQ_PR_CODEFROMEQUIPAGE)
AND NOT PR_CODE IN
(SELECT TC_PR_CODEFROMTICKET)
Здесь используются два вложенных запроса. Первый возвращает коды личностей членов экипажа из таблицы EQUIPAGE, а второй коды личностей из таблицы TICKET. В результате будут удалены все строки из таблицы PERSON коды личностей которых не попадают в результат вывода каждого из этих двух запросов.