Типы запросов

В MS Access используются следующие основные с:

1. Запросы на выборку

2. Перекрестные запросы

3. Запросы с параметрами

4. Запросы на изменение

5. Запросы SQL

Запросы, указанные под номерами 1-4, можно создавать средствами языков QBE и SQL.

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

Рис. 10.2.

Пример запроса на выборку, выполненный средствами QBE, представлен на рис. 10.2. Источником данных является таблица Students. Проецируемые поля – surname, name, lastname. Упорядочивание записей выполнено по полю surname. Результат выполнения запроса приведён на рис. 10.3.

Существуют следующие виды запросов на выборку:

o запросы–проекции полей

o запросы с упорядочиванием записей (рис. 10.2, 10.3)

o запросы с элементарными условиями отбора записей (рис. 10.4);

o запросы с использованием сложных логических выражений (рис. 10.6, 10.7);

o запросы, имеющие вычисляемые поля (рис.10.8).

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

Рис. 10.3. Результат выполнения запроса на выборку с упорядочиванием записей (по атрибуту surname).

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

Рис.10.4. Пример и результат выполнения запроса с элементарными условиями отбора записей

Запросы с использованием сложных логических выражений предполагают задание более одного условия отбора. Пусть дано отношение (рис. 10.5).

Рис. 10.5. Отношение Students.

Требуется создать запрос, позволяющий отобразить список студентов-юношей 1991 года рождения. Условия отбора по разным атрибутам (sex, birthday), реализующие операцию «пересечение множеств», должны быть указаны в одной строке (рис. 10.6).

Рис. 10.6. Пример и результат выполнения запроса с использованием логического выражения «AND» (пересечение множества студентов-юношей и множества студентов, родившихся в 1991 г.)

Если требуется отобразить список всех студентов 1991 года рождения да еще всех девушек независимо от их года рождения, условия отбора в запросе будут следующие (рис. 10.7). Условия отбора по разным атрибутам (sex, birthday), реализующие операцию «объединение множеств», должны быть указаны в разных строках (рис. 10.7).

Рис. 10.6. Пример и результат выполнения запроса с использованием логического выражения «OR» (объединение множества девушек и множества студентов, родившихся в 1991 г.)

Запросы, имеющие вычисляемые поля, предполагают создание в запросе нового поля, в котором будет задана формула. Вычисляемое поле содержит информацию, которая не хранится в базе данных, а каждый раз вычисляется. Пусть требуется вывести список всех студентов и вычислить их возраст. Для этого воспользуемся стандартнойSQL- функцией Year([]), вычисляющей значение года указанного атрибута. Year(Now()) означает вычисление значения текущего года. Тога выражение примет вид: Year(Now())-Year([birthday]).

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

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

Назначение перекрестных запросов: используются при создании форм и отчётов.

Перекрёстный запрос строится не менее чем на трёх атрибутах.

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

Второй - столбцы таблицы, например, согласно перечню предметов.

Третий - значение, вычисляемое для тела таблицы на пересечении Студент-Дисциплина. Такой атрибут называется "значение таблицы на пересечении строки Студент и столбца Дисциплина".

Рис.10.8. Перекрестный запрос в режиме Конструктор.

Типичной перекрёстной таблицей является сводная ведомость учёта оценок студентов по дисциплинам (рис. 10.8, 10.9).

Рис. 10.9. Перекрестный запрос в режиме Таблица.

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

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

Запросы на изменение. Запросом на изменение называют запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение.

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

o На обновление записи. Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на все молочные продукты или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах.

o На добавление записей (Append Query). Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты».

o На создание таблицы (Make-Table Query). Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие или при создания архивной таблицы, содержащей старые записи.

Формы

На практике ввод данных непосредственно в таблицы не осуществляется по ряду причин:

o Таблицы не поддерживают логическое упорядочивание отображаемых данных, например, в алфавитном порядке.

o Таблицы не отображают вычисляемые данные, например, возраст студента.

o Таблицы не предусматривают формирование итоговых данных, например, средний возраст студентов группы и пр.

o Существуют проблемы интерфейсного характера: использование элементов автоматизации работы оператора и др.

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

Виды форм:

o Одиночная форма

o Ленточная форма (модификация одиночной формы).

o Табличная форма (используется как элемент сложных форм, иначе говоря, самостоятельно не используется).

На практике чаще всего используются так называемые сложные формы: в основную (одиночную) форму внедряется подчиненная (табличная) форма. Пример сложной формы (основная+подчиненная) приведен на рис. 10.10.

Рис. 10.10. Пример сложной формы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: