- •Запрос к серверу
- •Управляющий запрос
- •Подчиненный запрос
- •Примеры выражений в инструкциях sql
- •Использование в условиях отбора выражений с именами полей
- •Использование вычисляемых полей в запросах
- •Порядок создания запроса с использованием групповых операций Назначение групповых операций
- •Последовательность действий
- •Конструирование запроса на создание таблицы
- •Корректировка данных средствами запроса Конструирование запроса на обновление (Update Query)
- •Запрос на удаление(Delete Query)
Использование в условиях отбора выражений с именами полей
Пример 4.2. Пусть необходимо проверить правильность задания общих часов в таблице ПРЕДМЕТ. ПО запросу должны отбираться только те записи, в которых значение в поле ЧАСЫ не равно значению, получаемому при сложении значений полей ПР и ЛЕК.

Рис.4.2. Окно конструктора запроса на выборку с использованием в условии отбора выражений с именами полей
Microsoft Access выводит эквивалентную инструкцию SQL для запроса, созданного в режиме конструктора (Вид/Режим SQL)
SELECT Предмет.НП, Предмет.Часы, Предмет.Лек, Предмет.ПР
FROM Предмет
WHERE (((Предмет.Часы)<>[ЛЕК]+[ПР]));
Конструирование многотабличного запроса на выборку
Конструирование многотабличного запроса на выборку на примере получения информации об успеваемости студентов.
Запрос на основе нескольких взаимосвязанных таблиц
Пример 4.3. Пусть необходимо получить информацию об оценках, полученных студентом по всем предметам. Результат должен содержать фамилию студента, наименование предметов, по которым проводился экзамен и оценки.
Последовательность действий
-
В окно запроса добавить необходимые таблицы
-
Установить между таблицами необходимые связи
-
Сформировать бланк запроса ( см. рис. 4.3.)
-
Выполнить запрос
-

Рис.4.3. Бланк многотабличного запроса с параметрами для ввода ФИО и НП
При выполнении запроса Access запросит ввести значения параметров через окна диалог (рис. 4.4.)

Рис. 4.4. Диалоговые окна для ввода параметров
Microsoft Access выводит эквивалентную инструкцию SQL для запроса, созданного в режиме конструктора(Вид/Режим SQL):
SELECT СТУДЕНТ.ФИО, Предмет.НП, Успеваемость.ОЦЕНКА
FROM (СТУДЕНТ INNER JOIN Успеваемость ON (СТУДЕНТ.НС = Успеваемость.НС) AND (СТУДЕНТ.НГ = Успеваемость.НГ)) INNER JOIN Предмет ON Успеваемость.КП = Предмет.КП
WHERE (((СТУДЕНТ.ФИО)=[Фамилия и инициалы студента]) AND ((Предмет.НП)=[Наименование предмета]));
Замечания. При использовании в условии отбора имен полей разных таблиц, помимо имени самого поля необходимо указать имя таблицы. Например, для обращения к подюЧАСЫ таблицы ИЗУЧЕНИЕ необходимо в условии отбора использовать следующее выражение :[ИЗУЧЕНИЕ]![ЧАСЫ].
Использование вычисляемых полей в запросах
В запросе над полями могут производиться вычислеия. Результат вычисления образует вычисляемое поле в таблице, созданной по запросу и не создает дополнительных полей в таблицах базы данных.
Рассмотрим технологию создания запроса с вычисляемым полем на примере таблицы ПРЕДМЕТ.
Пример 4.4. Пусть необходимо найти ошибочные записи о предмете, в которых общее число часов по предмету не совпадает с суммой часов лекций и практики.
Для решения этой задачи нам понадобиться значение выражения [ЧАСЫ]-[ПР] -[ЛЕК]. Результатом запроса должны быть только те записи, для которых значение этого выражения не равны нулю.
Порядок выполнения действий поясняется рис.4.5.

Рис.4.5. Запрос с вычисляемым полем
Microsoft Access выводит эквивалентную инструкцию SQL для запроса, созданного в режиме конструктора(Вид/Режим SQL):
SELECT Предмет.НП, Предмет.ПР, Предмет.Лек, Предмет.Часы, [Часы]-[ПР]-[Лек] AS Выражение1
FROM Предмет
WHERE ((([Часы]-[ПР]-[Лек])<>0));
Замечание. Для формирования сложного выражения в вычисляемом поле целесообразно использовать построитель выражений.
