Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_po_BD_2012.doc
Скачиваний:
14
Добавлен:
19.08.2019
Размер:
3.41 Mб
Скачать

24. Использование языка qbe в субд Acces

Язык QBE (Query by Exsample – Язык запросов по образцу) использует визуальный подход для организации доступа к информации в базе данных, построенный на применении шаблонов запросов, предложенных Злуфом (Zloof) в 1977 г. Работа с QBE осуществляется посредством задания в шаблоне запроса образцов значений, которые требуются в данный момент для получения ответа на некоторый вопрос.

Для иллюстрации возможностей этого языка воспользуемся средствами СУБД Access (которые практически ничем не отличаются от аналогичных средств других СУБД). Заметим, что при создании любого запроса в сетке конструирования QBE-запроса СУБД Microsoft Access неявно генерирует для него эквивалентный SQL-оператор. Просмотреть и от­редактировать этот SQL-оператор можно в окне SQL.

Рассмотрим особенности некоторых запросов на конкретных примерах работы с базой данных, содержащей информацию о сотрудниках предприятия и их руководителях.

Руководители

Сотрудники

Простые запросы на выборку данных

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

Запросы на выборку допускают группирование записей, а также вычисление сумм, средних значений и применение обобщающих функций других типов.

В начале создания нового запроса к базе данных открывается окно с бланком QBE. В этом окне пользователю не­обходимо указать таблицы и/или запросы, содержащие интересующие его данные, а также задать критерии (условия) отбора этих данных.

На рис.24.3 показан сформированный запрос для выборки данных из столбцов Таб_ном_сотр, ФИО и Должность таблицы Сотрудники. При этом из трех указанных столбцов выбираются только строки, описывающие сотрудников с табельными номерами больше 20 и меньше 150. На рис.24.4 представлен результат исполнения запроса.

Рис. 24.3 Запрос на выборку с условием

Рис.24.4. Результат исполнения запроса на выборку с условием

Можно существенно усложнить условие отбора, используя логические операторы AND, OR, NOT применительно к разным столбцам выборки.

Создание многотабличных запросов

Для того чтобы выбрать необходимые данные сразу из нескольких таблиц, следу­ет подготовить запрос на выборку данных; в окне запроса должны быть представлены все требуемые таблицы. Критерии отбора определяются в бланке QBE точно также, как и при выборке из одной таблицы. Допустим, что нас интересует, кто является руководителем сотрудника Симонова.

Сформированный запрос в этом случае будет выглядеть так, как показано на рис.24.5, а результат его исполнения – на рис. 24.6.

Рис. 24.5. Многотабличный запрос

Рис. 24.6. Результат исполнения многотабличного запроса

Запросы с вычислениями

Допустим, требуется увеличить оклады сотрудников на 10 процентов и дополнительно начислить 50.

При формировании запроса с вычислениями используется пустой столбец бланка запроса (бланка QBE), куда вводится формула для вычисления и в котором при исполнении запроса проставляются вычисленные значения (рис.24.7).

Рис. 24.7 Вид запросной формы перед вызовом построителя выражений

Далее на экран выводится построитель выражений, с помощью которого задается формула вычислений (рис. 24.8)

Рис. 24.8 Использование построителя выражений для ввода формул

Введенная формула отображается на запросном бланке (рис. 24.9).

Рис.24.9 Запрос на вычисление

Результирующий набор будет содержать столбец с вычисленными данными (рис. 24.10).

Рис.24.10 Результат исполнения запроса с вычислениями

Запросы с обобщением

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

Операцию вычислений над группой записей можно выполнить с помощью обобщающих запросов (иногда их называют итоговыми запроса­ми).

СУБД Microsoft Access позволяет производить различные типы итоговых вычислений, включая функции суммирования (Sum), вычисления среднего значения (Avg) поиска минимального (Min) или максимального (Мах) значения, а также подсчета эк­земпляров (Count).

Чтобы получить доступ к этим функциям, в окне запросов следует изменить тип запроса на групповые операции, в результате чего в бланке QBE будет отображена дополнительная строка с названием Групповая операция (рис.24.11.).

Запрос нашего примера должен быть сформирован не для всех строк таблицы Сотрудники, а только для группы строк, описывающих инженеров предприятия. Для этого необходимо сначала сгруппировать данные об объектах по значению поля Должность, для чего используется операция Группировка, при этом на бланке QBE появляется новая строка Групповая операция.

Вычисление минимального оклада для группы строк, описывающих инженеров, выполняется с помощью функции Min применительно к значениям столбца Оклад.

Как и в случае запросов других типов, в запросе с подведением итогов может быть указан некоторый критерий отбора группы записей. Например, в нашем случае критерием является должность – инженер.

Рис. 24.11. Запрос с обобщением

Результат исполнения сформированного запроса представлен на рис. 24.12. Обратим внимание на то, что эта результирующая таблица является моментальным снимком, то есть набором строк, кото­рый не допускает внесения изменений.

Рис.24.12 Результат исполнения запроса с обобщением

Запросы на добавление

Данный тип запросов используется для добавления записей из одной таблицы в другую. Результирующая таблица может быть расположена в той же самой или другой базе данных.

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

Если имена полей в результирующей таблице отличаются от имен в исходной таблице их необходимо явно указать в строке Добавление (см далее).

Будем считать, что в нашей БД имеется другая (исходная ) таблица Сотрудники второго предприятия, находящаяся в той же базе данных, что и таблица Сотрудники. При этом одинаковые по наименованию поля в обеих таблицах имеют одинаковые типы данных. Фрагмент этой таблицы представлен на рис. 24.13.

Рис. 24.13 Фрагмент таблицы Сотрудники второго предприятия

Допустим, что в таблицу Сотрудники ( в результирующую таблицу) требуется добавить сведения о Бирюкове ББ.

Формирование запроса начинается с выбора пункта меню Запрос /Добавление.

При этом надо указать, где располагается таблица, в которую будут добавлены данные из таблицы Сотрудники второго предприятия (рис. 24.14).

Рис. 24.14 Окно для задания местоположения результирующей таблицы

Обратите внимание, что после этой операции меняется вид бланка запроса: появляется новая строка Добавление, в которой надо указать поля исходной таблицы, из которых данные будут добавляться в таблицу Сотрудники (рис.24.15 ).

Рис.24.15 Вид запросной формы с отмеченными совпадающими полями обеих таблиц

Внимание: СУБД автоматически отмечает совпадающие поля обеих таблиц. Однако названия полей Номер пропуска и Таб_ном_сотр не совпадают, поэтому последний надо задать явно. Для этого в строке Добавление столбца Номер_пропуска надо ввести Таб_ном_сотр. После этого в строке Условие отбора задать условие выбора добавляемой строки (рис. 24.16)

Рис. 24.16 Запрос на добавление

В результате исполнения такого запроса в конец таблицы Сотрудники будет добавлена новая строка (рис.24.17).

Рис. 24.17 Вид таблицы Сотрудники после добавления строки

Запросы на обновление

Эти запросы предполагают обновление данных по месту. То есть структура таблицы и ее размер не меняются. Меняются только некоторые значения полей в указанных строках.

Например, сотруднику Бирюкову НН требуется присвоить табельный номер 193 и подчинить его руководителю с табельным номером 400.

Для формирования такого запроса надо выбрать пункт меню Запрос/Обновление.

(при этом на бланке запроса появится дополнительная строка Обновление ), в которую требуется ввести новые значения. В строке Условия отбора, как обычно , отмечаются условия отбора строки, в которую должны быть помещены новые значения (рис. 24.18).

Рис. 24.18 Запрос на обновление

В результате исполнения запроса в последней строке таблицы Сотрудники произойдут изменения (рис. 24.19).

Рис. 24.19 Вид таблицы Сотрудники после обновления строки

Лекция 12

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