Запросы на изменение с помощью sql
Как вы уже знаете, запросы на изменение используются для добавления, удаления и обновления записей, а также для сохранения результирующего набора записей запроса в виде таблицы. Посредством макрокоманды RunSQL (Запуск запроса SQL) эти запросы можно выполнить непосредственно из макроса.
Существует четыре вида запросов на изменение, каждому из которых соответствует определенная SQL-инструкция.
Запрос действия |
Описание |
SQL-инструкция |
Append query |
Запрос на добавление записей |
INSERT INTO |
Delete query |
Запрос на удаление записей |
DELETE |
Make-table query |
Запрос на создание таблицы |
SELECT... INTO |
Update query |
Запрос на обновление записей |
UPDATE |
Рассмотрим ряд примеров, чтобы научиться использовать запросы на изменение с помощью SQL.
Запрос на добавление
Перенесем часть сведений из таблицы Потенциальные покупатели в таблицу Клиенты. Отбор необходимых записей из таблицы Потенциальные покупатели выполним с помощью команды SELECT (SQL-запроса). После выполнения SQL-запроса образуется выходной набор данных. Его можно вставить в таблицу Клиенты с помощью команд меню. Для этого следует перейти в режим конструктора запроса и (при активном запросе из таблицы Потенциальные покупатели) выбрать из меню Запрос команду Добавление. Откроется диалоговое окно для установки параметров запроса на добавление.
Рис. 4.21. Окно установки параметров запроса на добавление
В списке имя таблицы выберите таблицу Клиенты (в нее должны быть добавлены записи). После нажатия кнопки ОК в окне конструктора запроса появится строка Добавление. Укажите в этой строке, в каких полях таблицы Клиенты должно находиться содержимое добавляемых записей. Число полей в добавляемых записях и в таблице, в которую они вставляются, должно совпадать. Запрос на добавление готов. Проверьте, как он выполняется, нажав кнопку Запуск на панели инструментов.
Созданный в окне конструктора запрос на добавление на языке SQL выглядит следующим образом:
INSERT INTO Клиенты
SELECT [Населенный пункт] = "Бобруйск"
FROM [Потенциальные покупатели];
С помощью этого SQL-запроса данные обо всех клиентах, проживающих в Бобруйске, выбираются из таблицы Потенциальные покупатели и заносятся в таблицу Клиенты.
Примечание:
Если таблица, в которую добавляются записи, содержит поле первичного ключа, то добавляемые записи должны иметь эквивалентное поле.
Запрос на обновление
Предположим, в результате повышения цен на энергоносители возникла необходимость поднять на 10 процентов цены на мороженое. Вместо того, чтобы вносить изменения в записи таблицы с каталогом товаров, можно выполнить актуализацию в рамках запроса. Операция актуализации включается в запрос путем вызова команды Обновление из меню Запрос во время проектирования QBE-запроса. В этом случае в проект запроса добавляется строка Обновление, в которой следует указать для обновляемого поля (в нашем случае для поля Цена) новую формулу — Цена * 1,1. Запрос на обновление готов.
Запрос на обновление на языке SQL выглядит так:
UPDATE [Каталог товаров] SET Цена = Цена * 1,1
WHERE Артикул = Мороженое;
С помощью данного запроса значения цен на мороженое различных сортов в таблице Каталог товаров будут увеличены на 10 процентов.
Примечание:
Содержимое текстовых полей проще изменять с помощью комш-ды Замена из меню Правка. Результат будет получен быстрее, чем в случае составления соответствующего запроса на обновление. Кроме того, пользователь сможет контролировать процесс замены.