Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Б/Д.doc
Скачиваний:
19
Добавлен:
25.04.2019
Размер:
389.63 Кб
Скачать

Удаление данных (запрос Delete)

Создает запрос на удаление записей, предназначенный для удаления записей из одной или нескольких таблиц, перечисленных в предложении FROM, которые удовлетворяют предложению WHERE.

Синтаксис:

DELETE [таблица.*]

FROM таблица

WHERE условиеОтбора

Таблица – необязательное имя таблицы, из которой удаляются записи.

условиеОтбора – выражение, определяющее удаляемые записи.

Инструкция DELETE особенно удобна для удаления большого количества записей. Чтобы удалить из базы данных целую таблицу, можно использовать метод Execute вместе с инструкцией DROP. Однако при таком удалении таблицы теряется ее структура. Если же применить инструкцию DELETE, удаляются только данные. При этом сохраняются структура таблицы и все остальные ее свойства, такие как атрибуты полей и индексы.

Инструкцию DELETE можно использовать для удаления записей из таблиц, связанных отношением "один-ко-многим" с другими таблицами. Операции каскадного удаления приводят к удалению записей из таблиц, находящихся на стороне отношения "многие", когда в запросе удаляется соответствующая им запись на стороне "один". Например, в отношении между таблицами "Клиенты" и "Заказы", таблица "Клиенты" расположена на стороне "один", а таблица "Заказы" на стороне "многие". Если разрешено каскадное удаление, то удаление записи из таблицы "Клиенты" приводит к удалению соответствующих записей из таблицы "Заказы". Запрос на удаление удаляет записи целиком, а не только содержимое указанных полей. Чтобы удалить данные в конкретном поле, следует создать запрос на обновление, который заменяет имеющиеся значения на значения Null.

· Нельзя восстановить записи, удаленные с помощью запроса на удаление. Чтобы узнать, какие записи будут удалены, просмотрите сначала результаты запроса на выборку, использующего те же самые условие отбора, а затем выполните запрос на удаление.

· Регулярно выполняйте резервирование данных. Непреднамеренно удаленные записи могут быть восстановлены по резервной копии.

В Microsoft Access выполнение инструкции DELETE не приводит к выводу результатов отчета в режиме таблицы.

Удаляются все записи отдела рекламы

DELETE

FROM Сотрудники

WHERE (((Сотрудники.Отдел)="Реклама"));

Подчинённые запросы

Это инструкции Select, вложенные в инструкции Select, Insert, Delete, Update или другой подчинённый запрос. Они создаются 3 способами. С помощью ключевых слов: ANY/ALL/SOME с использованием любого из видов отношений (>, <, =, <>).

ANY, SOME – синонимы, используются для отбора записей в главном запросе, которые удовлетворяют сравнению с любой из записей, отобранных в подчинённом запросе.

Select Товары, Наименование

From Товары

Where Товары.Цена >= ANY (Select Цена From …)

ALL используется для отбора записей, которые удовлетворяют сравнению со всеми записями подчинённого запроса.

Кроме того используется оператор IN, который позволяет сравнивать данное значение со значениями массива. Следующий пример возвращает данные по товарам, скидка по которым больше 25%.

Select *

From Товары

Where Товары.Код in (Select КодТовара From Заказано Where Скидка >= 25)

Для проверки пустых полей используются функции Exist и Not Exist.

Подчинённые запросы можно вставлять как в блок Where, как условие для отбора, так и в блок Select, но при этом подчинённый запрос должен возвращать одно значение.