Лабораторная работа № 3 Запросы
Запросы используются для просмотра, изменения и анализа данных различными способами. Запросы также можно использовать в качестве источников записей для форм, отчетов и страниц доступа к данным. В Microsoft Access есть несколько типов запросов: 1) запросы на выборку; 2) запросы с параметрами; 3) перекрестные запросы; 4) запросы на изменение; 5) запросы SQL.
Запрос на выборку
Запрос на выборку является наиболее часто используемым типом запроса. Запросы этого типа возвращают данные из одной или нескольких таблиц и отображают их в виде таблицы, записи в которой можно обновлять (с некоторыми ограничениями). Запросы на выборку можно также использовать для группировки записей и вычисления сумм, средних значений, подсчета записей и нахождения других типов итоговых значений.
Задание 1.
С помощью запроса на выборку осуществите:
1. отбор учеников, живущих на улице Советская и имеющих телефоны (отображаемые поля «Фамилия», «Имя», «Отчество», «Адрес-улица», «Адрес-дом», «Адрес-квартира», «Номер телефона»). Пояснения: в списке «Объекты» перейдите на пункт «Запросы» и выберите «Создание запроса в режиме конструктора»; в окне «Добавление таблицы» выберите «Ученики» и щелкните кнопку «Добавить»; заполните бланк запроса, как показано на рис. 1; в меню «Запрос» выберите команду «Запуск»; сохраните запрос под именем «Ученики с улицы Советская с телефонами»
Рис. 1
2. подсчет количества учеников в каждом классе (отображаемые поля «Класс», «Код ученика»). Пояснения: заполните бланк запроса, как показано на рис. 2; для получения строки «Групповая операция» вызовите контекстное меню бланка и выберите команду «Групповые операции»; сохраните запрос под именем «Количество учеников в каждом классе».
Рис. 2
3. подсчет количество учителей по каждому предмету; сохраните запрос под именем «Количество учителей по каждому предмету».
4. для каждого учителя определите стаж работы в школе (отображаемые поля «Код учителя», «Фамилия», «Имя», «Отчество», «Стаж работы в школе»). Пояснения: заполните бланк запроса, как показано на рис. 3; сохраните запрос под именем «Стаж работы учителей в школе».
Рис. 3
5. отбор учителей, работавших только в данной школе с начала своей трудовой деятельности, т.е. разница между стажем педагогической работы (таблица «Учителя») и стажем работы в школе (запрос «Стаж работы учителей в школе») должна равняться нулю (отображаемые поля «Фамилия», «Имя», «Отчество»). Пояснения: в режиме конструктора в окне «Добавление таблицы» выберите вкладку «Таблицы и запросы», из списка на этой вкладке добавьте таблицу «Учителя» и запрос «Стаж работы учителей в школе»; заполните бланк запроса, как показано на рис. 4 (предварительно создайте связь между таблицей и запросом по полю «Код учителя», перетащив название этого поля из таблицы на название поля в запросе); сохраните запрос под именем «Учителя со стажем работы только в данной школе».
Рис. 4
6. отбор учеников, возраст которых превышает средний возраст по классу. Пояснения: создайте запрос «Средний возраст по классам», заполните бланк запроса, как показано на рис. 5.
Рис. 5
Затем создайте запрос «Ученики старше среднего возраста в классе», добавив в него таблицу «Ученики» и запрос «Средний возраст по классам» и связав их по полю «Класс». Заполните бланк запроса, как показано на рис. 6.
Рис. 6
7. деление поля «Название класса» таблицы «Классы» на два поля «Номер класса» и «Буква класса». Пояснение: вызовите конструктор запросов, добавьте в запрос таблицу «Классы», заполните бланк запроса, как показано на рис. 7; сохраните запрос под именем «Название класса в расшифровке».
Номер класса: Left([Название класса];InStr([Название класса];"""")-1)
Буква класса: Mid([Название класса];InStr([Название класса];"""")+1;1)
При формировании полей «Номер класса» и «Буква класса» использованы текстовые функции:
LEFT(Строка;Число_символов) – выделяет из «Строки» подстроку длиной «Число_символов», начиная с левого края «Строки»;
RIGHT(Строка;Число_символов) – выделяет из «Строки» подстроку длиной «Число_символов», начиная с правого края «Строки»;
MID(Строка;Начальная_позиция;Число_символов) – выделяет из «Строки» подстроку длиной «Число_символов», начиная с «Начальной позиции»;
INSTR(Строка;Подстрока) – выводит номер позиции в «Строке», с которой начинается «Подстрока».
Рис. 7