Виды запросов в Access

В лабораторной работе №3 "Запросы в Access" были рассмотрены Простой запрос, запрос Повторяющиеся записи и запрос Записи без подчинения. Они являются достаточно простыми как по созданию, так и по выполняемым операциям. В MS Access также широко применяются более сложные виды запросов, к которым относятся Перекрёстный запрос и Запросы на изменение.

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

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

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

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

· Запрос на добавление добавляет группу записей из одной или не-.

скольких таблиц в конец одной или нескольких таблиц

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

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

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

2 Разработка запросов

2.1 Запрос с параметром по одной таблице.

Для создания запросов с параметром Должность тренера.

2.1.1 Сначала создаётся простой запрос:

§ Откройте объект Запросы, щелкните по кнопке Создать;

§ В появившемся окне выберите Простой запрос и щелкните по кнопке OK;

§ В появившемся окне в строке Таблицы и запросы выберите из списка таблицу Тренеры;

§ Перенесите все поля из окна Доступные поля в окно Выбранные поля, щелкнув по кнопке [>>];

§ Нажмите кнопку Далее. В следующем окне мастера запросов оставьте подробный отчёт (чёрная точка в кружке), еще раз щелкните по кнопке Далее;

§ В появившемся окне введите имя запроса Должность;

§ Нажмите кнопку Готово. На экране появится таблица с данными запроса – полным списком тренеров.

2.1.2 Теперь на базе этого простого запроса нужно создать запрос с параметром Должность. Для этого перейдите в режим конструктора;

§ В строке Условия отбора для поля Должность введите фразу (квадратные скобки тоже вводить): [ Введите должность ] ;

§ Выполните запрос, щелкнув по кнопке [!] на панели инструментов, или выполните команду Запрос\ Запуск;

§ В появившемся окне введите Тренер (можно со строчной буквы) и щелкните по кнопке ОК. На экране появится таблица с данными о всех тренерах таблицы Тренеры. Аналогично запросить вывод Старших тренеров и т.д.

§ Сохраните запрос и закройте таблицу запроса.

2.2 Запрос с параметром по нескольким таблицам.

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

2.2.1 Сначала создаётся простой запрос по таблицам Тренеры и Виды спорта:

§ Выделив в окне БД объект Запросы, щелкните по кнопке Создать;

§ Выберите Простой запрос и щелкните по кнопке ОК; Выберите таблицу Тренеры и перенесите поля Фамилия, Имя, Отчество, Должность, Зарплата в окно Выделенные поля.

§ В таблице Виды спорта перенесите поле Название дисциплины;

Тем самым сформировано шесть полей запроса - они связаны между собой посредством схемы данных;

§ Нажмите кнопку Далее, затем в следующем окне снова щелкните по кнопке Далее;

§ В появившемся окне введите имя запроса Фамилия-Дисциплина, затем щелкните в кружке Изменить макет запроса (в ней появится черная точка) - это позволит сразу перейти в режим конструктора;

§ Нажмите кнопку Готово;

§ 2.2.2 Вводим параметры запроса:

§ В строке Условия отбора для поля Название дисциплины введите фразу: [Введите название дисциплины], для поля Фамилия – фразу [Введите фамилию], скобки тоже вводить;

§ Выполните запрос (через Запрос\ Запуск или [!]);

§ В первом появившемся окне введите Бокс, щелкните по кнопке ОК, во втором – введите Лапин, щелкните по кнопке ОК. На экране появится таблица со строкой (табл. 1):

Таблица 1

Название дисциплины Фамилия Имя Отчество Должность Зарплата
Бокс Лапин Илья Фомич Старший тренер 5890р.

 

§ Сохраните запрос и закройте таблицу запроса.

 

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

Создадим запрос о средней зарплате тренеров по дисциплинам. Такой запрос строится на основе одной таблицы или одного запроса, в связи чем надо сначала сформировать запрос, в котором были бы поля Должность, Название дисциплины и Зарплата.

2.3.1 Создаём простой запрос с этими полями из таблиц Виды спорта и Тренеры, вводим имя запроса Зарплата тренеров, сохраняем запрос и закрываем его таблицу – см. п. 2.1..

2.3.2 Создание перекрестного запроса. Для этого:

§ На вкладке Запросы щелкните по кнопке Создать;

§ Выберите Перекрестный запрос и щелкните по кнопке ОК;

§ Щелкните по ячейки Запросы, выберите Зарплата тренеров и щелкните по кнопке Далее;

§ Выберите поле Название дисциплины и щелкните по кнопке Далее;

§ Из полей Должность и Зарплата выделите поле Зарплата, нажмите кнопку Далее;

§ Выберите функцию Среднее и щелкните по кнопке Далее;

§ Введите название запроса Средняя зарплата и нажмите кнопку Готово. Откроется таблица перекрестного запроса. Обратите внимание на то , что Access создает еще итоговое значение средних оценок по дисциплинам;

§ Закройте таблицу запроса.