Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika_Ucheb_posobie_k_vypolneniyu_kontrolnykh_rabot_dlya_studentov_zaochnogo_fakulteta.pdf
Скачиваний:
45
Добавлен:
11.03.2016
Размер:
5.53 Mб
Скачать

3.4 Использование запросов

Ранее отмечалось, что при работе с таблицами, формами и отчетами можно использовать фильтр отбора данных, который задает условия отображения данных в этих объектах (вкладка Главная ленты, группа Сортировка и фильтр). Там же присутствует кнопка Расши-

ренный фильтр, которая открывает окно Конструктора запросов

для текущей таблицы.

Кроме того, для разработки запросов и их сохранения в базе данных в системе Access 2007 имеются специальные режимы на ленте

Создание в группе Другие – Мастер запросов и Конструктор запросов.

Запросы при работе с базами данных в различных СУБД имеют близкий синтаксис, определяемый правилами языка SQL (Structured Query Language) и фактически являются текстовой командой на этом языке. Система Access использует команды языка SQL не только для отбора данных (команда SELECT…), но и для изменения множества

данных одной командой UPDATE, добавления множества записей одной командой INSERTи удаления группы записей одной командой DELETE …, а также для выполнения вычислений путем создания

в запросах вычисляемых полей.

Типы запросов, которые могут быть заданы в системе Access:

1.Выборка – запрос для отбора данные по заданным сложным усл о- виям из одной или нескольких таблиц баз данных, с показом ре-

зультатов выполнения запроса в виде таблицы, либо с использованием его для форм и отчетов данных – команда SQL SELECT; в Окне свойств запроса может быть настроен параметр Тип набора записей: динамический набор – после редактирования данных в таблице запроса данные таблиц базы данных обновляются! (с некоторыми ограничениями) и статический набор – только просмотр результатов отбора.

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

96

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

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

4.1.обновление данных – команда занесения общих изменений в

группу записей одной или нескольких таблиц (команда SQL

UPDATE);

4.2.добавление данных – команда добавления группы записей из

одной или нескольких таблиц в конец одной или нескольких таблиц (команда SQL INSERT);

4.3.удаление данных – команда удаления группы записей из одной или нескольких таблиц (команда SQL DELETE).

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

Для создания запроса на вкладке Создание нажимаем кнопку Мастер запросов, после чего открывается окно с названием Новый запрос, в котором предлагается выбрать тип запроса из списка:

Простой запрос (создание запроса на выборку из определенных полей)

Перекрестный запрос (создание запроса, выводящего данные в компактном формате, подобном формату электронной таблицы)

Повторяющиеся записи (создание запроса на поиск повторяющихся записей в простой таблице или запросе)

Записи без подчиненных (создание запроса на поиск записей,

которым не соответствует ни одна запись в подчиненной таблице).

Выберем первый тип – простой запрос, после чего откроется окно Мастера запросов, на первом шаге которого требуется выбрать таблицы и поля для запроса (рисунок 3.33).

97

Рисунок 3.33 Выбор полей в Мастере запросов

Выбор полей может быть выполнен из нескольких таблиц базы. Для нашего примера на первом шаге выбираем из таблицы Список все поля, кроме DATA_P и N_PASP, из таблицы Оценки 4 поля: SEMESTR,

N_PREDM, BALL, DATA_B из таблицы Предметы поле NAME_P.

На шаге 2 необходимо выбрать подробный или итоговый отчет,

выбираем подробный.

На последнем шаге 3 задаем название запроса Математика и выберем вариант Изменить макет запроса, после чего нажимаем кнопку Готово. Запрос открывается в конструкторе запросов, его вид показан на рисунок 3.34.

При работе с Конструктором запросов используется контекстная вкладка Работа с запросами Конструктор (см. рисунок 3.35), в

которой, в частности, есть кнопка Итоги, после нажатия, на которую в Конструкторе запросов появляется строка Групповая операция

для задания условий группировки данных и создания итоговых вы-

числяемых полей.

98

Рисунок 3.34 Конструктор запросов

Рисунок 3.35 Контекстная вкладка ленты Работа с запросами

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

99

Рисунок 3.36 Параметры объединения таблиц в за-

просе, в синтаксисе SQL: 1– INNER JOIN; 2 – LEFT

JOIN; 3 – RIGHT JOIN

Модифицируем запрос для задания условия отбора данных и упорядочения студентов по их фамилии. Для этого в колонке поля FIO зададим сортировку по возрастанию, для поля SEMESTR зададим условие отбора 1 (первый семестр), для поля BALL зададим условие отбора 5 и для поля NAME_P зададим условие отбора Математика. Если в условии отбора написать текст в квадратных скобках, при выполнении запроса появится окно для ввода этого параметра. Например, если для поля NAME_P в условии написать [Задайте предмет], можно будет использовать один и тот же запрос для отбора данных по разным предметам. Можно также убрать галочки у тех полей, которые Вы не хотите показывать на экране.

Сохраним запрос и посмотрим его текст в режиме SQL (Structured Query Language). Текст запроса будет выглядеть следующим образом:

SELECT Список.NZ, Список.FIO, Список.DATA_P,_ Список.N_FCLT,

Список.N_SPECT, Список.KURS,_ Список.N_GRUP, Список.N_PASP, Оценки.SEMESTR,_ Оценки.N_PREDM, Оценки.BALL, Оценки.DATA_B,_ Оценки.PREPOD,

Предметы.NAME_P

FROM Список INNER JOIN (Предметы INNER JOIN Оценки ON _ Предметы.N_PREDM = Оценки.N_PREDM) ON Список.NZ = _

Оценки.NZ

WHERE (((Оценки.SEMESTR)=2) AND _ ((Предметы.NAME_P)="Математика"))ORDER BY Список.FIO;

100

Текст запроса состоит из нескольких частей:

1) после ключевого слова SELECT следует список полей, которые будут представлены в результате выполнения запроса (например, Список.NZ – имя таблицы и её поле, разделенные точкой);

2) после слова FROM следует список таблиц, из которых будут отбираться данные, и условия объединения таблиц;

3)после слова WHERE следуют условия отбора данных;

4)после слова FROM указаны условия упорядочения данных в

запросе.

Закроем окно конструктора и выполним запрос командой Открыть или двойным щелчком мышью. Результат отбора данных будет показан на экране в виде таблицы.

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

балл по студенческим группам по предмету Математика (№ предмета = 1). Для группировки данных, как отмечалось выше, на вкладке ленты Работа с запросами – Конструктор нажмем на кнопку Итоги.

Получим следующий текст SQL-запроса:

SELECT Список.N_GRUP, Avg(Оценки.BALL) AS [Avg-BALL] FROM Список INNER JOIN Оценки ON Список.NZ = Оценки.NZ _ GROUP BY Список.N_GRUP, Оценки.N_PREDM _

HAVING (((Оценки.N_PREDM)=1))

Для представления данных запроса в виде графика выбираем

ВидСводная диаграмма, после чего открывается окно Построите-

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

На рисунке 3.37 показана диаграмма для приведенного выше запроса.

101

Рисунок 3.37 Результаты выполнения запроса с группировкой данных, представленные в виде диаграммы

На рисунке 3.38 приведена трехмерная диаграмма для запроса следующего вида:

SELECT DISTINCTROW Факультеты.NAME_F,_

Предметы.NAME_P, Avg(Оценки.BALL) AS [Avg-BALL] FROM Предметы INNER JOIN ((Список INNER JOIN Оценки _ ON Список.NZ = Оценки.NZ) INNER JOIN Факультеты _

ON Список.N_FCLT = Факультеты.N_FCLT) ON _ Предметы.N_PREDM = Оценки.N_PREDM

GROUP BY Факультеты.NAME_F, Предметы.NAME_P;

102

Рисунок 3.38 Результаты выполнения запроса с группировкой данных, представленные в виде трехмерной диаграммы

Задание:

1.Разработать несколько вариантов запросов для выданного задания.

2.Разработать и напечатать отчет для одного из запросов.

103

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