Создание запросов на выборку
Запрос на выборку данных служит для извлечения данных из таблиц и предоставления их пользователю в удобном виде.
Запрос лучше создавать в режиме Конструктора.
Создание запроса на основе данных одной таблицы
Создадим Запрос 1: Выбрать из базы данных Сотрудники фамилию, должность, зарплату сотрудников, работающих в отделе номер 120.
Выберем в окне базы данных объект Запросы, а затем дважды щелкнем на значке Создание запроса в режиме Конструктора в правой части окна. Откроется бланк запроса. Одновременно с ним откроется диалоговое окно Добавление таблицы (см рис 2.11).
В окне Добавление таблицы дважды щелкнем таблицу Сотрудник, а затем щелкнем кнопку Закрыть.
В строку Поле в бланке запроса добавим поля ФИО, Должность, Зарплата, Номер отдела. Добавление производится двойным щелчком на именах полей, в списке полей таблицы Сотрудник, расположенном в верхней части бланка запроса.
В строке Условие отбора бланка запроса для поля Номер отдела зададим условие отбора (наберем на клавиатуре значение 120).
В строке Вывод на экран бланка запроса для поля Номер отдела уберем флажок, щелкнув на нем. (для подавления отображения этого поля на экране). Бланк запроса примет вид, представленный на рис. 2.12.
Щелкнем кнопку Запуск на панели инструментов Microsoft Access для представления результата выполнения запроса.
Закроем окно запроса. При закрытии окна появится диалоговое окно Сохранение, в котором зададим имя запроса Отдел 120 и щелкнем кнопку ОК.
Окно запроса и диалоговое окно Сохранение представлены на рис. 2.13.
Рис.2.11. Пустой бланк запроса с диалоговым окном Добавление таблицы.
Рис. 2.12. Заполненный бланк запроса.
Рис. 2.13. Результат выполнения запроса с диалоговым окном Сохранение.
Создание запроса на основе данных двух таблиц
Создадим Запрос 2: Выбрать из базы данных Сотрудники номер пропуска, фамилию, должность сотрудников работающих в отделе, руководимом начальником отдела с фамилией Морозов. Результаты запроса упорядочить по полю ФИО в алфавитном порядке (по возрастанию).
Выберем в окне базы данных объект Запросы, а затем дважды щелкнем на значке Создание запроса в режиме Конструктора в правой части окна.
В окне Добавление таблицы добавим таблицы, на основе которых будет строиться запрос. Это таблицы Отдел и Сотрудник. Закроем окно.
Добавим в бланк запроса поля Номер пропуска ,ФИО, Должность из таблицы Сотрудник и поле Фамилия начальника из таблицы Отдел.
Щелкнем в поле ФИО в строке Сортировка и из раскрывающегося списка выберем метод сортировки по возрастанию.
В строке Вывод на экран для поля Фамилия начальника уберем флажок для подавления отображения этого поля на экране.
В строке Условие отбора бланка запроса для поля Фамилия начальника зададим условие отбора, набрав Морозов. Можно без кавычек. В этом случае кавычки будут добавлены автоматически.
Сохраним запрос под именем Морозов.
Бланк запроса представлен на рис. 2.14. Результат запроса представлен на рис. 2.15.
Рис. 2.14 Заполненный бланк запроса.
Рис. 2.15. Результат выполнения запроса.
Создание запроса на выборку с параметром
Запрос с параметром позволяет пользователю вводить критерий отбора данных при запуске запроса.
СоздадимЗапрос 3: Выбрать из базы данных Сотрудники номер пропуска, фамилию, должность сотрудников, работающих под руководством заведующего, фамилию которого будет задаваться при запуске запроса.
Бланк запроса представлен на рис. 2.16.
Рис. 2.16. Заполненный бланк запроса с параметром.
Заполнение бланка запроса выполняется также как и при создании предыдущего запроса, кроме строки Условие отбора для поля Фамилия начальника. В этой ячейке бланка в квадратных скобках наберем текст, приглашающий ввести фамилию начальника отдела.
Сохраним запрос под именем Начальник отдела.
Запустим запрос на выполнение дважды щелкнув значок запроса в окне базы данных.
На экране появится окно Введите значение параметра с приглашением, которое было задано в бланке запроса в квадратных скобках как условие отбора в поле Фамилия начальника (см. рис.2.17).
Рис. 2.17. Окно Введите значение параметра.
Введем фамилию начальника отдела Павлова, содержащуюся в базе данных, и щелкнем кнопку ОК.
Результаты запроса представлены на рис. 2.18.
Рис 3. Окно конструктора запроса. Пример ввода условия.
Нижняя часть является бланком запроса, или, как его называют, QBE – областью ( Query by Example – запрос по образцу). Здесь указываются параметры запроса и данные, которые нужно отобрать, а также определяется способ их отображения на экране.
Для перемещения из верхней панели окна в нижнюю и обратно используется клавиша F6.
6.2.2. Включение полей в запрос
В запрос не следует включать все поля выбранных таблиц.
Добавить нужные поля в бланк запроса можно путем перетаскивания их имен из списка, находящегося в верхней части окна конструктора в строку бланка Поле.
Еще один способ – двойной щелчок по имени поля.
Например, на рис.3 в бланк запроса включены поля Фамилия, Имя и Город из таблицы Студент.
Если был установлен флажок Имена таблиц из меню Вид, то во второй строке бланка QBE выйдет на экран имя таблицы, из которой выбрано поле (см. рис.3). В строке Вывод на экран флажком помечаются те поля, которые должны быть выведены на экран.
В общем случае поля, вводимые в наборе записей запроса, наследуют свойства, заданные для соответствующих полей таблицы.
Можно определить другие значения свойств, выполнив команду Свойства из меню Вид: Описание (текст, содержащий описание объекта), Формат поля (представление данных на экране), Число десятичных знаков (для числовых данных, Маска ввода, Подпись (заголовок столбца).
Удалить поле из бланка запроса можно клавишей [ Delete ] или через меню Правка командой Удалить столбцы. Чтобы удалить таблицу, следует маркировать ее в верхней части окна конструктора запроса, выполнив щелчок по имени, и нажать [ Delete ] или в меню Правка командой Удалить.
6.2.3.Установка критериев отбора записей
При создании запроса можно задать критерии, вследствие чего по запросу будет осуществлен отбор только нужных записей.
Чтобы найти записи с конкретным значением в каком либо поле, нужно ввести это значение в данное поле в строке бланка QBE Условие отбора (см. рис.3).
Критерии, устанавливаемые в QBE – области, должны быть заключены в кавычки. Если ACCESS 97 идентифицирует введенные символы как критерии отбора, то заключает их в кавычки автоматически, а если нет, то сообщает о синтаксической ошибке.
Например, как показано на рис.3, построен запрос, по которому из данных по баллам будут выбраны фамилии и имена студентов с оценками только 4 и 5.
6.3. Виды критериев
Для создания запроса с несколькими критериями пользуются различными операторами.
6.3.1. Логическая операция или
Можно задать несколько условий отбора, соединенных логическим оператором или ( or ), для некоторого поля одним из двух способов:
1) можно ввести все условия в одну ячейку строки Условие отбора, соединив их логическим оператором или ( or ). В этом случае будут выбраны данные, удовлетворяющие хотя бы одному из условий.
4 or 5
соответствует тому, что будут выбраны фамилии с оценками 4 или 5.
2) ввести второе условие в отдельную ячейку строки или. И если используется несколько строк или, то чтобы запись была выбрана, достаточно выполнения условий хотя бы в одной из строк или, как, например, показано на рис. 4.
Рис 4. Пример записи условия с использованием оператора или ( or ).
При такой записи условия также будут выбраны фамилии с оценками 4 или 5.
6.3.2. Логическая операция и
Логическая операция и ( and ) используется в том случае, когда должны быть выполнены оба условия и только в этом случае запись будет выбрана.
Например, записав условие
>2 and <5
будут выбраны только оценки 3 и 4.
Чтобы объединить несколько условий отбора оператором и ( and ) , следует привести их в одной строке.
Например, на рис 5 показано как можно задать условие для выбора фамилий студентов, проживающих в городе Уфе, которые учатся только на 5.
Рис 5. Пример записи условия с использованием оператора и ( and ).
Исключить группу данных из состава анализируемых запросом записей позволяет следующий критерий
< > 4
В этом случае можно не использовать кавычки.
Операторы и и или применяются как отдельно, так и в комбинации. Следует помнить, что условия связанные оператором и выполняются раньше условий, объединенных оператором или.
6.3.3.Оператор B etween
Оператор B etween позволяет задать диапазон значений, например:
between 10 and 20
Оператор I n позволяет задавать используемый для сравнения список значений. Например:
in (“первый”,”второй”,”третий”)
6.3.4. Оператор L ike
Оператор L ike полезен для поиска образцов в текстовых полях, причем можно использовать шаблоны:
* — обозначает любое количество ( включая нулевой) символов;
? — любой одиночный символ;
# — указывает что в данной позиции должна быть цифра.
Например: для выбора фамилии, начинающейся с буквы П и с окончанием “ов” можно записать
like П*ов
6.3.5.Операторы для даты и времени
Можно ввести дату и время, при этом значения должны быть заключены между символами #. Например:
#10 мая 1998#
>#31.12.96#
В Access используется ряд других функций, которые помогут задать условия отбора для даты и времени, например:
Day (дата) – возвращает значение дня месяца в диапазоне от 1 до 31
Month (дата) – возвращает значение месяца года в диапазоне от 1 до 12
Year (дата) – возвращает значение года в диапазоне от 100 до 9999
6.4.Сортировка данных в запросе
Данные можно упорядочить по возрастанию или убыванию.
Для упорядочения отобранных записей целесообразно воспользоваться возможностями сортировки самого запроса в строке Сортировка окна конструктора запроса (см рис 3).
6.5. Вычисляемые поля
Можно задать вычисления над любыми полями таблицы и сделать вычисляемое значение новым полем в запросе.
Для этого в строке Поле бланка QBE вводится формула для вычисления, причем имена полей заключаются в квадратные скобки.
Например: =[ Оклад]*0.15
В выражениях можно использовать следующие операторы:
— арифметические: * умножение; + сложение; — вычитание; / деление; ^ возведение в степень;
— соединение частей текста при помощи знака & , например:
=[ Фамилия] & “ “&[Имя]
В кавычки заключен пробел для того, чтобы запись не была слитной.
6.5.1. Использование построителя выражений
При создании выражений для вычисляемых полей можно использовать Построитель выражений . Для этого нужно щелкнуть по пустому полю в бланке QBE, а затем по кнопке панели инструментов Построить,
при этом откроется окно Построитель выражений (рис. 6 ).
Рис.6. Окно построителя выражений
В верхней части окна расположена пустая область ввода, в которой создается выражение. Можно самим ввести выражение, но проще использовать различные кнопки, расположенные под областью ввода.
Для начала нужно щелкнуть дважды в левом списке по папке Таблицы, и выбрать саму таблицу ,а затем в колонке Код само поле и щелкнуть по кнопке Вставить.
Например, как показано на рис 6, была выбрана таблица Сотрудники.
Все имена объектов, из которых строится выражение для вычисления, заключены в квадратные скобки, причем перед именем поля может стоять восклицательный знак ( ! ) разделяющий его и имя таблицы.
Ошибку при составлении выражения можно отменить , щелкнув по кнопке Отмена.
В результате произведенных действий получится выражение, например как показано на рисунке. 6 задано выражение для поля, которое будет состоять из суммы оклада и премии сотрудника.
Если щелкнуть по кнопке ОК , то полученный результат будет перенесен в бланк QBE.
6.6. Итоговые запросы
Итоговые запросы значительно отличаются от обычных. В них поля делятся на 2 типа:
— поля, по которым осуществляется группировка данных;
— поля, для которых проводятся вычисления.
Для составления итогового запроса, находясь в режиме конструктора, следует нажать кнопку Групповые операции на панели инструментов или воспользоваться командой Групповые операции из меню Вид.
В результате чего в бланке запроса появится строка Групповая операция. Если для соответствующего поля из списка выбрать функцию Группировка (рис 7), то при выполнении запроса записи по этому полю группируются по значениям в этом поле , но итог не подводится.
Группировка в итоговом запросе производится только по одному полю. Во всех остальных полях вводятся итоговые функции.
Рис 7. Строка Групповая операция в бланке QBE
Access предоставляет ряд функций, обеспечивающих выполнение групповых операций. Можно задать нужную функцию, набрав на клавиатуре ее имя в строке, Групповая операция или выбрав ее из раскрывающегося списка.
Основные групповые функции, которыми можно воспользоваться:
SUМ — вычисляет сумму всех значений заданного поля (для числовых или денежных полей), отобранных запросом;
AVG — вычисляет среднее значение в тех записях определенного поля, которые отобраны запросом ( для числовых или денежных полей);
MIN — выбирает минимальное значение в записях определенного поля, отобранных запросом;
MAX – выбирает максимальное значение в записях определенного поля, отобранных запросом;
COUNT – вычисляет количество записей, отобранных запросом в определенном поле, в которых значения данного поля отличны от нуля;
F I RST — определяет первое значение в указанном поле записей;
LAST -. определяет последнее значение в указанном поле записей.
6.7. Выполнение запроса
Готовый запрос выполняется после щелчка по кнопке панели инструментов в режиме Конструктора запросов или при активизации команды Запуск из меню Запрос. В результате будет получена таблица с ответом на заданные условия . Например, на рис 8 показан результат запроса, построенного на рис. 3.
Рис.8. Результат выполненного запроса
6.8. Запросы к нескольким таблицам
Запросы можно создавать для отбора данных как из одной, так и из нескольких таблиц. Запросы к нескольким таблицам производятся аналогично запросам к однотабличным БД с той лишь разницей, что в окно конструктора запроса добавляются все таблицы, данные которых нужны в запросе.
При этом следует учитывать наличие связей между таблицами (см. лаб. раб. по созданию многотабличной БД ).
На рис. 3 представлены две таблицы Студенты и Студенты и занятия, где показана связь один-ко-многим.
7. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
7.1. Создать простой запрос — выбрать несколько произвольных полей из таблицы Студенты.
7.2. С помощью Конструктора создать запросы, удовлетворяющие условиям:
— единственное значение факультета;
— два различных факультета;
— фамилии студентов, начинающиеся с определенной буквы (использовать шаблоны);
— фамилии студентов, заканчивающиеся на “ов”;
— фамилии студентов одного факультета и одного курса;
— фамилии и имена студентов, проживающие в одном из городов или обучающиеся на одном из факультетов;
— фамилии студентов, у которых стипендия больше 400 рублей;
— фамилии студентов, занимающиеся не в 1-ой группе и стипендия которых в пределах от 200 до 500 р.
Примечание:
В запрос должны быть включены поля Фамилия , Имя, Отчество и те поля, где вводятся критерии.
После того как был задан критерий для запроса, запрос нужно выполнить и сохранить под именем, подходящим по смыслу.
7.3. Для запросов с полем типа Дата/время добавить поле Дата рождения и выбрать записи, удовлетворяющие условиям:
— дата больше 1.1.80;
— дата в интервале значений и задан факультет;
— фамилии и имена студентов, родившихся в 80-х годах;
— вычислить возраст студентов;
— фамилии и имена студентов, родившихся в первой половине месяца;
7.4. Создать итоговый запрос:
— оставить в запросе поля Факультет, Стипендия, Номер зачетки, вычислить максимальное значение стипендии для каждого факультета и подсчитать количество студентов на каждом факультете (используя Count ).
7.5. Запрос с вычисляемыми полями:
— включить в запрос вычисляемое поле, которое является результатом сцепления текстовых полей Фамилия, Имя, Отчество. Назваить поле Ф. И. О. студента.
— используя построитель выражений, подсчитать надбавку студентам, равную 15% от стипендии;
7.6. Создать запрос, в котором используются поля из двух ранее созданных и связанных таблиц, задав ему имя Запрос для 2-х таблиц
– убрать несколько полей таблицы Студенты и добавить поля Предмет и Оценка из таблицы Успеваемость;
– выбрать поле Фамилия, предмет и Оценка, вычислить минимальное значение по полю Оценка;
– сгруппировать по номеру зачетки и вычислить среднюю оценку для каждого студента.
Как в access сделать запрос на выборку по фамилии
Существует немало различных видов запросов, но самые простые из них и, к тому же, используемые наиболее часто — это запросы на выборку.
Цель запроса на выборку состоит в создании результирующей таблицы, в которой отображаются только нужные по условию запроса данные из базовых таблиц.
Как и другие объекты Access, запросы можно создавать автоматически с помощью Мастера или вручную. Для создания запросов к базам данных существует специальный язык запросов. Он называется SQL (Structured Query Language — структурированный язык запросов). Вместо него в Access есть простое средство, которое называется бланком запроса по образцу. С его помощью можно сформировать запрос простыми приемами.
Запросы
Существует несколько типов запросов: на выборку, на добавление, на удаление, на обновление, запрос на создание таблиц, перекрестный запрос.
Запросы могут создаваться двумя способами: «вручную» и с помощью мастера. Имеется четыре мастера запросов:
Простой запрос
Служит для создания простых запросов на основе выбранных полей.
Перекрестный запрос
Позволяет в компактной форме выводить данные, объединяя однотипную информацию, а также вычисляет сумму, среднее значение, число элементов и значения других статистических функций данных определенных категорий.
Повторяющиеся записи
Запрос такого типа позволяет выбирать из таблицы или простого запроса повторяющиеся записи.
Записи без подчиненных
Такой запрос выбирает из таблицы записи, не связанные с записями из другой таблицы.
С помощью Конструктора запросы создаются «вручную».
Создание запросов
При создании макета запроса в общем случае необходимо выполнить следующие базовые операции:
1) указать системе, какие поля и из каких таблиц мы хотим включить в запрос;
2) указать тип запроса (по умолчанию установлен запрос на выборку);
3) при необходимости описать вычисляемые поля, то есть поля, значения которых являются функциями значений существующих полей;
4) описать групповые операции над записями исходных таблиц;
5) описать условия отбора, то есть сформулировать логическое выражение, которое позволит включить в выборку только записи, удовлетворяющие определенному условию.
При разработке конкретного запроса допускается любое сочетание перечисленных операций.
Создать запрос Адреса для вывода фамилий, имен и адресов студентов .
1) перейдем на вкладку Запросы и щелкнем на кнопке С оздать с помощью мастера, чтобы перейти к созданию запроса;
2) на экране появится диалоговое окно Новый запрос, предназначенное для выбора способа построения запроса;
3) выберем значение Простои запрос и нажмем кнопку ОК;
4) в первом диалоговом окне в списке Таблицы/Запросы выберем таблицу, поля которой будут анализироваться при выполнении запроса (Сведения о студентах);
5) в списке Доступные поля отметим поле Фамилия и перенесем его в список Выбранные поля:
6) те же действия выполним для полей Имя и Адрес. Нажмем кнопку Д алее;
7) в последнем окне присвоим запросу имя Адреса. После этого нажмем кнопку Готово.
При формировании запросов на выборку данных, соответствующих каким-либо условиям, используют выражения – формулы для фильтрации данных. Например,
введем в поле номера >4 – отбор записей, номер которых больше 4;
для даты рождения >12.07.76, — вывод всех, кто родился позже указанной даты;
для фамилий И * – отбор начинающихся на указанную букву.
Примеры использования символов задания шаблонов
обозначает один любой символ
обозначает любое количество любых символов
обозначает любую цифру
Кроме операций сравнения можно использовать арифметические (+ — * / ^), логические ( Or , And , Not ), например, введем в поле фамилия >=В * and <= Д* ,- отбор записей, чья фамилия начинается на букву от В до Д
Примеры условных выражений
Вывод записей, которые
Имеют значение Пермь
Не имеют значение Пермь
Начинаются на букву от А-Л
Начинаются на букву от П-Я
Имеют значение 50
Имеют значение даты позднее 01.01.2004
Имеют значение месяца февраль
Начинаются с буквы Р
Кроме этого есть ряд специфических операций, а также функции. Примеры можно найти в справочной системе (в разделе "создание выражений").
Создать запрос, отображающий список студентов мужского пола в алфавитном порядке.
1) Для выполнения задания воспользуемся конструктором запросов. Активируем в левом меню БД объект запросы и вызовем режим создания запроса с помощью конструктора.
Рис. 14. Диалоговое окно создания запроса.
Добавим в конструктор таблицу «Сведения о студентах»
Рис. 15. Окно конструктора запроса.
Окно, которое появится вслед за этим, называется Окно конструктора запроса. Это основное средство работы с запросами. Оно позволяет не только сформировать новый запрос, но и понять, по какому принципу построен любой из уже существующих .
Рис. 16. Режим конструктора запроса
В верхней половине отображается выбранная таблица.
Нижняя часть окна — бланк запроса — содержит описание запроса в табличной форме. Каждая колонка в нем отвечает одному полю. Строки Поле и Имя таблицы содержат списки, которые позволяют определить нужное поле.
2) Щелчком мыши в строке поле активируем список и последовательно выберем все поля таблицы Таблица расширяется вправо автоматически, когда пользователь добавляет в запрос новые поля.
3) Заполнив строку Условие отбора, мы сможем произвести выборку из базы данных. В поле «Пол» в строку Условие отбора внести букву «м» — в том формате, (в котором вносилась информация в таблицу !, то есть маленькая русская буква без кавычек и точек)
4) В поле «Фамилия» в строке Сортировка выбрать «По возрастанию»
5) Закрыть окно конструктора, присвоив запросу имя «1 отдел»
Задание 11.
Создать запрос, позволяющий выбрать данные на конкретного студент а( Параметрический.)
1) С помощью конструктора создать новый запрос на основе таблицы Сведения о студентах, выбрав последовательно все поля.
2) В поле Фамилия в строке Условие отбора внести те кст в кв адратных скобках «Введи фамилию». Текст должен выглядеть так: [ Введи фамилию ] .
3) Сохранить запрос с именем Фамилия.
4) Выполнить запрос.
Самостоятельная работа № 3
1. Создайте запрос Телефоны, позволяющий выводить фамилии, имена, телефоны студентов.
2. Измените запрос так, чтобы можно было получить данные одного конкретного студента
3. Отобразите список студентов, имена которых начинаются на любую одну и ту же букву.
Формирование запросов с вычисляемыми полями. Использование построителя выражений
Microsoft Access предоставляет пользователю возможность создавать более сложные выражения с помощью построителя выражений. Построитель предоставляет список часто используемых выражений, из которого их можно выбрать.
Для запуска построителя выражений необходимо выполнить следующие действия:
1) открыть запрос в режиме конструктора;
2) установить указатель в позицию, в которую требуется ввести выражение, и нажать правую клавишу мыши;
3) в контекстном меню выбрать команду П остроить. Другой вариант -нажать кнопку П остроить на панели инструментов.
Построитель выражений состоит из трех разделов.
Рис 17. Построитель выражений
В верхней части окна построителя расположено поле выражения. Ниже находится раздел, предназначенный для создания элементов выражения и их последующей вставки в поле выражения. Допускается непосредственный ввод части выражения в поле выражения.
Существуют определенные требования к синтаксису выражений. Например, символьные данные заключаются в кавычки, даты в знак #.
В средней части окна построителя находятся кнопки с часто используемыми операторами. При нажатии на одну из этих кнопок построитель вставит соответствующий оператор в текущую позицию поля выражения.
Кроме традиционных знаков математических действий существует еще несколько операторов:
Обратная косая черта обозначает деление целых частей делимого и делителя. Результат округляется до целых.
Возведение в степень.
Операция получения остатка от деления целых частей аргументов.
Используется для «сложения» данных символьного типа. Можно использовать и более привычный знак «плюс».
Используется для создания масок при определении строк с неизвестными символами и требует дополнительных специальных символов и правил синтаксиса. Например,
? — знак вопроса означает любой одиночный символ
* — звездочка означает любую последовательность символов
# — обозначает любую неизвестную цифру.
Логические операторы также используются для построения условий отбора. Они могут применяться к двум или нескольким выражениям и используются со скобками.
Чтобы вывести полный список операторов, выберите папку Операторы в нижнем левом поле и нужный тип в среднем поле. В правом поле будут выведены все операторы выбранного типа.
В нижней части окна построителя находятся три поля.
В левом поле выводятся папки, содержащие таблицы, запросы, формы, объекты базы данных, встроенные и определенные пользователем функции, константы, операторы и общие выражения.
В среднем поле задаются определенные элементы или типы элементов для папки, заданной в левом поле. Например, если выбрать в левом поле Встроенные функции, то в среднем поле появится список всех типов функций Microsoft Access.
В правом поле выводится список значений (если они существуют) для элементов, заданных левым и средним полями. Например, если выбрать в левом поле Встроенные функции и тип функции в среднем, то в правом поле будет выведен список всех встроенных функций выбранного типа.
С помощью построителя выражений указать фамилии учениц, имеющих средний балл меньше 3.
Для решения поставленной задачи можно воспользоваться готовым запросом Рейтинг студентов.
Выполним следующие действия:
1) в окне базы данных перейдем на вкладку Запросы и щелкнем на кнопке С оздать, чтобы перейти к созданию запроса;
2) на экране появится диалоговое окно Новый запрос, предназначенное для выбора способа построения запроса;
3) выберем значение Конструктор и нажмем кнопку ОК;
4) добавим таблицу Сведения о студентах, необходимую для создания запроса и запрос Рейтинг студентов;
5) в первую колонку строки Поле бланка запроса поместим поле Фамилия таблицы Сведения о студентах;
6) в строке Сортировка установим значение по возрастанию;
7) во вторую колонку поместим поле Avg_оценка , в котором хранятся средние значения;
8) в строке Условие отбора запустим Построитель выражений;
9) в левой части построителя выберем объект Запрос, а из раскрывшегося списка — запрос Рейтинг студентов;
10) в средней части построителя выражений выберем поле, необходимое для построение выражения — Avg_оценка и вставим его в поле выражений;
11) зададим значение <3. Таким образом, мы задали отбор тех студентов группы, у которых средний балл меньше 3;
12) продолжим строить выражение и зададим условие, отбирающее только студенток группы. Для этого внесем в поле выражений логический оператор And ;
13) аналогично, выберем таблицу Сведения о студентах и поле Пол;
14) укажем условие отбора —
15) нажмем кнопку ОК после чего окно построителя закроется и мы вернемся в бланк запроса;
16) снимем флажок в строке Вывод на экран столбца Avg_оценка ;
17) сохраним запрос.
Группировка в запросах
Создать запрос Рейтинг студентов для подсчета среднего балла каждого студента в группе.
Для улучшения качества запроса вместо кодов студентов, применяемых в таблице «Годовая успеваемость группы» (в ней собраны сведения по успеваемости), укажем соответствующие фамилии и имена из таблицы Сведения о студентах.
Таким образом, для решения данной задачи мы будем использовать две таблицы.
Помните, что при составлении запроса на основе нескольких таблиц между ними необходимо установить связь, задав отношения между полями. В противном случае результат обработки запроса может оказаться некорректным.
В нашем случае отношение между таблицами уже задано, между полями таблиц проведена линия.
1) в окне базы данных перейдем на вкладку Запросы и щелкнем на кнопке С оздать, чтобы перейти к созданию запроса;
2) на экране появится диалоговое окно Новый запрос, предназначенное для выбора способа построения запроса;
3) выберем значение Конструктор и нажмем кнопку ОК;
4) в результате на экране появится два окна: окно конструктора запросов Запрос: Запрос на выборку и окно выбора таблиц Добавление таблицы . Окно Добавление таблицы состоит из трех вкладок, содержащих перечни объектов, предлагаемых программой для проектирования запроса: Таблицы, Запросы, Таблицы и запросы. В бланке запроса укажем параметры запроса и данные, которые нужно отобрать, а также способ их отображения на экране;
5) перейдем на вкладку Таблицы, маркируем таблицу Сведения о студентах и щелкнем на кнопке Д обавить. Затем маркируем таблицу Успеваемость группы и снова выполним щелчок на кнопке Д обавить. Закроем диалоговое окно (кнопка З акрыть). В окне проектирования запроса появятся имена выбранных таблиц;
6) установим тип запроса Выборка, нажав кнопку Тип запроса на панели инструментов;
7) выполним двойной щелчок на поле Фамилия таблицы Сведения о студентах. В результате имя этого поля будет помещено в строку Поле бланка запроса. Добавить нужные поля в бланк запроса можно также перетаскиванием их имен из списка, находящегося в верхней части окна конструктора, в строку бланка Поле,
8) аналогично во вторую колонку строки Поле вставим имя поля Имя из таблицы Сведения о студентах;
9) для упорядочения отобранных записей по алфавиту воспользуемся возможностями сортировки самого запроса. Для этого в строке Сортировка столбца Фамилия откроем список значений и зададим сортировку данных по возрастанию;
10) аналогичные операции выполним для поля Имя таблицы Сведения о студентах;
11) вставим в бланк запроса поле Оценка из таблицы Годовая Успеваемость группы;
12) в бланке запроса добавим строку Групповые операции;
13) в полях Фамилия и Имя строки Групповые операции установим значение Группировка:
14) в поле Оценка установим значение Avg . Нам необходимо, чтобы после запятой стояло только одно число (например, 3.4 или 4.5). Для этого пало указать формат вывода результатов в запросе. Выполним следующие операции: в строке Групповая операция поля Оценка щелкнем правой клавишей мыши и из раскрывшегося меню выберем команду Свойства. В строке Формат поля окна Свойства поля введем значение Фиксированный, а в поле Число десятичных знаков —ч исловой. Можно также указать подпись поля — Средний балл.
15) сохраним запрос с именем Рейтинг студентов.
Самостоятельная работа № 4
1. Исправьте запрос Рейтинг студентов так, чтобы выводились данные только хорошо успевающих студентов.
2. Создать запрос Наименьшая оценка, позволяющий выводить минимальную оценку каждого студента группы.
Сложные запросы
Некоторые виды запросов направлены на изменение данных непосредственно в таблицах. Выполнение таких заданий требует повышенного внимания. Перед выполнением таких запросов рекомендуется создать резервную копию таблицы.
1. Запрос на обновление
Используя запрос на обновление, пользователь может изменить группу записей, отобранную на основе определенных критериев.
Для создания запроса на обновление выполните следующее:
1) предварительно составьте запрос на выборку;
2) затем выполните составленный запрос и оцените результат, переключившись в режим таблицы с помощью команды Режим таблицы из меню Вид;
3) после этого вернитесь в режим конструктора и активизируйте команду Обновление из меню Запрос;
4) Access 97 добавит в бланк запроса строку Обновление, которая предназначена для указания новых значений полей таблицы. В качестве таковых могут выступать и вычисляемые выражения;
5) в специальном диалоговом окне Access укажет, сколько записей будет изменено в таблице, и потребует подтвердить выполнение этой операции.
Используя запрос Оценки студента и возможности запроса на обновление, измените все оценки какого-либо студента на 5.
Запрос на создание таблиц
На основе записей, отобранных запросом можно построить новую таблицу с помощью запроса на создание таблицы. Такие запросы обычно применяют для архивирования старых записей или для сохранения резервных копий таблиц.
1) предварительно подготовьте запрос на выборку;
2) выполните составленный запрос для проверки его правильности;
3) вернитесь в режим конструктора и в меню Запрос выберите команда Создание таблицы, в которое необходимо ввести имя новой таблицы;
4) выполните запрос, нажав кнопку с восклицательным знаком на панели инструментов;
5) в специальном окне Access укажет, сколько записей добавляется с новую таблицу, и потребует подтвердить выполнение этой операции.
С помощью запроса Дата рождения и запроса на создание таблицы создайте таблицу Выборка дней рождения студентов.
Запрос на добавление
С помощью запроса на добавление записи одной таблицы (все отобранные запросом) можно поместить в конец другой таблицы. Для создания запроса на добавление выполните следующее:
1) для отбора добавляемых записей сначала составьте запрос на выборку;
2) выполните составленный запрос и оцените результат, переключились в режим таблицы с помощью команды Режим таблицы из меню Вид;
3) после этого вернитесь в режим конструктора и активизируйте команду Добавление из меню Запрос;
4) в открывшемся при этом диалоговом окне Добавление задайте в поле Имя таблицы имя таблицы, к которой вы будете присоединять данные из выбранного набора записей;
5) после нажатия кнопки OK Access добавляет в бланк запроса строку Добавление. В эту строку автоматически или в ручную вставляются имена тех полей целевой таблицы, которые совпадают с именами полей запроса;
6) выполните запрос, нажав кнопку Запуск на панели инструментов;
7) в специальном диалоговом окне Access укажет, сколько записей будет добавлено к целевой таблице, и потребует подтвердить выполнение этой операции.
Измените запрос Дата рождения так, чтобы выбирались дни рождения в марте месяце. С помощью запроса на добавления добавьте данные, полученные измененным запросом Дата рождения в таблицу Выборка дней рождения студентов.
Запрос на удаление
Запросы этого типа служат для удаления из таблицы групп записей, соответствующих некоторому критерию отбора. Поскольку записи, удаление посредством запроса, нельзя восстановить, следует тщательно анализировать критерии отбора.
Для создания запроса на удаление выполните следующее:
1) для отбора удаляемых записей сначала составьте запрос на выборку.
2) затем выполните составленный запрос и оцените результат, переключившись в режим таблицы с помощью команды Режим таблицы из меню Вид;
3) после этого вернитесь в режим конструктора и активизируйте команду Удаление из меню Запрос;
4) Access добавит в бланк запроса строку Удаление и введет в ее ячейки значение Условие. Это означает, что пользователь может установить дополнительные критерии отбора;
5) выполните запрос, нажав кнопку Запуск на панели инструментов;
6) в специальном диалоговом окне Access укажет, сколько записей будет удалено из таблицы, и потребует подтвердить выполнение этой операции.
Удалите из таблицы Выборка дней рождения учеников данные об учениках, родившихся с I по 12 число.