Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL теория.doc
Скачиваний:
1
Добавлен:
31.08.2019
Размер:
211.46 Кб
Скачать

Запрос на удаление

Допустим, просматривая таблицу с данными о клиентах, вы обнаружили, что в последнем полугодии от некоторых клиентов не поступали заказы, следовательно, данные о них можно удалить из таблицы. В окне конструктора запроса задайте критерии отбора, после чего активизируйте команду Удаление из меню Запрос. В результате в проекте запроса появится строка Удаление, а в ячейках этой строки, которые соответствуют полям запроса, — ключевое слово Условие. Здесь укажите, каким критериям должны отвечать удаляемые записи. В поле Дата заказа введите следующее условие:

<15.01.97

В результате будут отобраны записи о тех клиентах, последние заказу от которых были получены фирмой раньше 15 января 1997 года. Запрос на удаление готов. Проверьте, как он работает, нажав кнопку Запуск на панели инструментов.

На языке SQL запросы на удаление создаются с помощью инструкции DELETE, что особенно эффективно при удалении большого количества записей или при удалении записей из многих таблиц. В нашем примере запрос на удаление формулируется на языке SQL следующим образом:

DELETE FROM Клиенты

WHERE [Дата заказа]<15.01.1997;

С помощью данного запроса из таблицы Клиенты удаляются записи обо всех клиентах, последний заказ от которых поступил на фирму до 15 января 1997 года.

Примечание:

В случае необходимости удалить все записи следует удалять таблицу как целый объект, что будет выполнено быстрее, чем запрос на удаление. После удаления таблицы ее структура будет потеряна. При использовании же инструкции DELETE удаля­ются только данные, структура таблицы и все ее свойства (атрибуты полей и индексы) сохраняются.

Запрос на создание таблицы

Предположим, вы постоянно используете в работе таблицу с данными о заказах за последние два года. Поступление заказов продолжается, таблица растет, а скорость ее обработки падает. Ускорить работу можно за счет удаления из таблицы сведений о заказах годичной давности. Окончательно удалить их нельзя, они могут пригодиться в будущем, например, для анализа отношений с отдельными клиентами. Данные о заказах, поступивших до 1996 года включительно, необходимо извлечь из таблицы и пере­нести в новую таблицу — Архив заказов.

Для решения поставленной задачи создадим запрос, позволяющий отобрать данные для новой таблицы. Критерием отбора будет

[Дата заказа]<01.01.1997

В меню Запрос выберите команду Создание таблицы. Откроется диалоговое окно задания параметров запроса на создание таблицы

Рис. 4.22. Окно задания параметров запроса на создание таблицы

В поле Имя таблицы задайте имя создаваемой таблицы. После нажатия кнопки ОК запрос на создание таблицы будет готов. Для его выполнения следует нажать кнопку Запуск на панели инстру­ментов.

Такой же запрос можно создать и на SQL-языке, используя инструкцию SELECT...INTO:

SELECT Список_полей INTO Новая_Таблица

В качестве значения аргумента Список_полей указываются поля, которые должны быть скопированы в новую таблицу. Между именами полей ставятся запятые. В качестве значения аргумента Новоя_таблица задается таблица с выходным набором, которую мы получим в результате выполнения запроса.

Запрос на создание таблицы в рассматриваемом примере выглядит так:

SELECT Заказы.*

INTO [Архив заказов]

FROM Заказы

WHERE [Дата заказа] < 01.01.1997;

С помощью данного запроса на основе записей таблицы Заказы создается таблица Архив заказов с такой же структурой, как и у исходной таблицы. В нее помещаются записи о тех заказах, которые были сделаны до 1 января 1997 года.

Преобразование QBE-запроса в SQL-запрос

Запросы, созданные в окне конструктора запроса, Access 97 автоматически преобразует в SQL-запросы. Пока пользователь работает с данными, созданными Access 97, ему незачем обращаться к SQL-инструкциям. SQL представляет интерес только в том случае, если из Access 97 пользователь делает запрос к другой базе данных, поддерживающей SQL.

Если у пользователя, слабо знающего SQL, возникнет необходи­мость создать SQL-запрос, ему следует спроектировать QBE-запрос, а затем преобразовать его в SQL-запрос. Ниже описана последователь­ность операций, которую необходимо при этом выполнить. •- В окне проектирования QBE-запроса создайте QBE-запрос, который нужно преобразовать в SQL-запрос.

• В меню Вид выберите команду Режим SQL. На экране появится окно SQL.

Рис. 4.23. Окно SQL-запроса

В окне SQL индицируется SQL-запрос, соответствующий QBE-запросу, составленному в окне конструктора.

Примечание:

SQL-запрос можно отредактировать в окне SQL. После закрытия окна изменения автоматически отображаются и в QBE-запросе.

Ввод SQL-выражения

В SQL-окно можно непосредственно вводить команды, состав­ляющие SQL-запрос. Это рекомендуется делать в тех случаях, когда пользователь хорошо знает язык SQL. Проектирование SQL-запроса начинается с создания нового QBE-запроса. После открытия окна* конструктора QBE-запроса следует сразу активизировать команду Режим SQL из меню Вид. На экране появится окно SQL.

В окне SQL введите инструкции, составляющие SQL-запрос. При вводе текста в этом окне слишком длинные строки разрыва­ются. Для повышения наглядности инструкций каждую командную строку SQL можно начинать с новой строки, используя комбина­цию клавиш [Ctrl+Enter].

Для сохранения набранной в SQL-окне последовательности инструкций следует нажать кнопку ОК. Если в SQL-запросе нет ошибок, Access 97 сформирует эквивалентный QBE-запрос и заполнит поля QBE-области. Теперь запрос можно выполнить, вызвав из меню Запрос команду Запуск или активизировав кнопку с восклицательным знаком на панели инструментов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]