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

6.7. Создание и использование запросов

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

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

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

  • выбрать записи, удовлетворяющие условиям отбора;

  • включить в результирующую таблицу запроса заданные пользователем поля;

  • произвести вычисления в каждой из полученных записей;

  • сгруппировать записи с одинаковыми значениями в одном или нескольких полях для выполнения над ними групповых функций;

  • произвести обновление полей в выбранном подмножестве записей;

  • создать новую таблицу БД, используя данные из существующих таблиц;

  • удалить выбранное подмножество записей из таблицы БД;

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

В MS Access можно создавать различные типы запросов (табл. 6.2) двумя основными способами в режиме мастера и конструктора.

Таблица 6.2.

Тип

Описание

Выборка

Выборка данных в таблицу результата запроса на основе указанных условий отбора

Перекрестный

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

Создание таблицы

Создание новой таблицы в текущей или в другой БД на основе информации из имеющихся таблиц

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

При выполнении запроса в диалоговом окне отображаются приглашения ввести параметры отбора данных

Обновление

Обновление данных таблицы

Добавление

Добавление набора записей в таблицу

Удаление

Удаление записей таблицы по указанному критерию

Запросы SQL

Запросы на объединение, запросы к серверу, управляющие запросы, подчиненные запросы


Создание запроса с помощью Мастера запросов

Чтобы создать простой запрос с помощью Мастера запросов, необходимо:

  1. В окне БД на панели объектов выбрать ярлык Запросы (рис. 6.16).

  2. Всписке запросов дважды щелкнуть левой кнопкой мыши на ярлыкеСоздание запроса с помощью мастера или нажать на кнопку Создать в окне БД. В появившемся диалоговом окне Новый запрос выбрать Простой запрос и нажать на кнопку ОК (рис. 6.27).

  3. Впоявившемся окнеСоздание простых запросов в поле со списком Таблицы и запросы выбрать таблицу или запрос, которые будут служить источником данных для создаваемого запроса (рис. 6.28).

  4. С помощью указателей переместить из списка Доступные поля в список Выбранные поля те поля, которые необходимы. При этом порядок полей в запросе будет соответствовать их порядку в списке Выбранные поля.

  5. Нажать кнопку Далее.

  6. В последнем окне ввести имя создаваемого запроса в поле Задайте имя запроса, и выбрать дальнейшие действия: Открыть запрос для просмотра данных или Изменить макет запроса (рис. 6.29).

  7. При необходимости можно установить флажокВывести справку по работе с запросом? для получения соответствующей справки.

  8. Нажать на кнопку Готово.

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

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

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

Выбор базовых таблиц для запроса

Создание запроса к базе начинается с открытия вкладки Запросыдиалогового окнаБаза данныхи щелчка на кнопкеСоздать.

  1. В открывшемся диалоговом окне Новый запрос задают ручной режим создания запроса выбором пункта Конструктор.

  2. Создание запроса в режиме Конструктора начинают с выбора тех таблиц базы, на которых будет основан запрос.

  3. Выбор таблиц выполняют в диалоговом окне Добавление таблицы. В нем отображаются все таблицы и запросы (источники запроса), имеющиеся в базе (рис. 6.30).

  4. Выбранные таблицы заносят в верхнюю половину бланка запроса по образцу щелчком на кнопке Добавить.

  5. В окне Добавление таблицы три вкладки: Таблицы, Запросы, Запросы и таблицы.

Заполнение бланка запроса по образцу

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

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

Если щелкнуть на строке Сортировка, появится кнопка раскрывающегося списка, содержащего виды сортировки.

В строке бланка запроса по образцу Условие отборазаписывают критерий, по которому выбирают записи для включения в результирующую таблицу. По каждому полю можно создать свое условие отбора. Запуск запроса выполняют щелчком менюВидРежимтаблицы. При запуске образуется результирующая таблица.

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

Запросы с параметром

Во многих случаях пользователю надо предоставить возможность выбора данных в таблицах БД. Для этого существует специальный вид запроса – запрос с параметром, который использует команду: LIKE [...];

В квадратных скобках можно записать любой текст, обращенный к пользователю, например: LIKE [Введите страну]

Команду LIKEнадо поместить в строкеУсловие отбораи в том поле, по которому производится выбор. В нашем случае это столбецСтрана(рис. 6.31).

Вычисления в запросах

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

Вычисляемое поле может содержать встроенные функции MS Access и следующие операторы:

+, – складывает/вычитает два арифметических выражения;

*– перемножает два арифметических выражения;

/ делит первое арифметическое выражение на второе;

\ делит первое на второе. Результат округляется до целого;

^ возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением;

&создает текстовую строку как результат присоединения второй строки к концу первой. Если один из операндов является числом, то он автоматически преобразуется в строку символов.

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

Сумма продажи : [Цена] * [Количество] – [Цена] * [Количество] *[Скидка]

При нажатии комбинации клавиш SHIFT+F2 открывается диалоговое окно, которое называетсяОбласть ввода(рис. 6.32) В нем необходимо ввести формулу, а потом щелчком на кнопкеОКона переносится в бланк запроса.

Итоговые запросы

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

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

Для вычисления итоговых значений надо нажать кнопкуГрупповые операции (рис. 6.33), чтобы в бланке появилась строкаГрупповые операции. MS Access использует установкуГруппировкав строкеГрупповая операциядля любого поля, занесенного в бланк запроса. Теперь записи по каждому полю группируются, но итог не подводится. Если выполнить запрос сейчас, получится набор записей, включающий по одной строке для каждого уникального значения поля запроса, но без итогов. Для получения итогов необходимо заменить установкуГруппировкав строкеГрупповая операцияна конкретные итоговые функции.

Задать функцию можно путем ввода ее имени с клавиатуры в строку Групповая операциябланка запроса или выбрав ее в раскрывающемся списке (рис. 6.34).

Итоговые функции MS Access:

  • Sum– вычисляет сумму всех значений заданного поля в каждой группе.

  • Avg – вычисляет среднее арифметическое всех значений данного поля в каждой группе.

  • Min – возвращает наименьшее значение, найденное в этом поле внутри каждой группы.

  • Max– возвращает наибольшее значение, найденное в этом поле внутри каждой группы.

  • Count– возвращает число записей, в которых значения данного поля отличны от Null.

  • StDev– стандартное отклонение всех значений данного поля в каждой группе.

  • Var– вычисляет дисперсию значений данного поля в каждой группе.

  • First – возвращает первое значение этого поля в группе.

  • Last– возвращает последнее значение этого поля в группе.