- •Введение
- •1. Работа с программным обеспечением Microsoft Word
- •2. Работа с программой Microsoft Excel
- •3. Работа с программой Microsoft Access
- •3.1.Создание базы данных
- •3.2. Создание таблиц в Мicrosoft Аccess
- •3.2.1. Создание таблиц с помощью мастера
- •3.2.2. Создание таблиц путем ввода данных
- •3.2.3. Создание таблиц с помощью конструктора
- •3.3. Задание ключевого поля. Создание связей между таблицами
- •3.4. Оформление и изменение таблиц
- •3.5. Создание запросов
- •3.5.1. Запросы на выборку
- •3.5.2. Итоговые запросы
- •Заключение
3.5. Создание запросов
В режиме таблицы доступны самые разные операции с данными – просмотр, сортировка, фильтрация, обновление и печать. Однако очень часто приходится проводить вычисления или просматривать данные из нескольких таблиц. Отобрать нужные данные можно с помощью запросов.
3.5.1. Запросы на выборку
После выполнения запроса на выборку (который отбирает информацию из таблиц и других запросов базы данных, в то время как при выполнении запросов на изменение данные вставляются, обновляются или удаляются) Microsoft Access создает набор записей, содержащий отобранные данные. В большинстве случаев с набором записей можно работать точно так же, как с таблицей: можно просматривать и выбирать информацию, печатать и даже обновлять данные. Однако в отличие от реальной таблицы, этот набор записей физически не существует в базе данных. Microsoft Access создает набор записей из данных таблицы только во время выполнения запроса. Если вы измените данные в наборе записей, Microsoft Access внесет соответствующие изменения в таблицы, на базе которой построен запрос.
Я создала несколько запросов, первый из них – это Зарплата. Основные поля: Фамилии, Имя, Отчество, пол, подразделение, должность, оклад и стаж работы. Я использовала таблицы Сотрудники и Штатное расписание. Я выбрала необходимые мне поля. После этого я вышла из режима конструктора для просмотра полученного запроса.
Одним из преимуществ запросов является то, что они позволяют достаточно быстро отобрать необходимые данные из нескольких связанных таблиц. Но запросы полезны и при работе с одной таблицей. Все приемы, используемые при работе с единственной таблицей, годятся и для сложных многотабличных запросов, поэтому я начну с запросов на выборку данных одной таблицы. Все запросы выполняются при помощи определенного набора операций. Запрос «Зарплата» выглядит следующим образом: SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Сотрудник.Пол, Сотрудник.Должн AS Сотрудник_Должн, Сотрудник.[стаж работы], [Штатное расписание].Должн AS [Штатное расписание_Должн], [Штатное расписание].ОкладFROM [Штатное расписание] INNER JOIN Сотрудник ON [Штатное расписание].Должн = Сотрудник.Должн;
Следующий запрос – Дети - позволяет вывести в алфавитном порядке Ф.И.О. сотрудников и имена их детей. Этот запрос будет выглядеть следующим образом:SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Состав_семьи.Фамилия, Состав_семьи.Имя, Состав_семьи.Отчество FROM Сотрудник, Состав_семьи WHERE Сотрудник.Идент_код=Состав_семьи.идент_код and (Состав_семьи.Отношение='дочь' or Состав_семьи.Отношение='сын').
Следующий запрос – Стаж. Для создания запроса я использовал описанные приемы. Запрос выглядит следующим образом: SELECT Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Сотрудник.стаж_работы, Сотрудник.Пол FROM Сотрудник WHERE Сотрудник.Пол="муж" and Сотрудник.Стаж_работы>=5;
3.5.2. Итоговые запросы
Для вычисления итоговых значений надо нажать кнопку Групповые операции( ), чтобы в бланке QBE появилась строка Групповые операции. Microsoft Access использует установку Группировка в строке Групповая операция для любого поля, занесенного в бланк запроса. Теперь записи по каждому полю группируются, но итог не подводится. Если выполнить запрос сейчас, вы получите набор записей, включающий по одной строке для каждого уникального значения поля запроса – но без итогов. Для получения итогов замените установку Группировка в строке Групповая операция на конкретные итоговые функции.
Microsoft Access предоставляет девять функций, обеспечивающих выполнение групповых операций. Можно задать нужную вам функцию, введя ее имя с клавиатуры в строке Групповая операция бланка запроса или выбрав ее в раскрывающемся списке.
Итоговые функции Access:
Sum – вычисляет сумму всех значений заданного поля в каждой группе.
Avg – вычисляет среднее арифметическое всех значений данного поля в каждой группе.
Min – возвращает наименьшее значение, найденное в этом поле внутри каждой группы.
Max – возвращает наибольшее значение, найденное в этом поле внутри каждой группы.
Count – возвращает число записей, в которых значения данного поля отличны от Null.
StDev – стандартное отклонение всех значений данного поля в каждой группе.
Var –вычисляет дисперсию значений данного поля в каждой группе.
First – возвращает первое значение этого поля в группе.
Last – возвращает последнее значение этого поля в группе.
Описанные выше способы позволили мне сделать запрос «Зарплата на отдел», который выводит Название подразделения, вычисляемое поле Фонд заработанной платы отдела за месяц (ФЗПМ) и вычисляемое поле Фонд заработанной платы за год (ФЗПГ)Итоговый запрос «Зарплата на отдел». Он выглядит следующим образом SELECT DISTINCTROW Штатное_расписание.[Назв подр], [Кол ед]*[Оклад] AS ФЗПМ, [Кол ед]*[Оклад]*12 AS ФЗПГ
FROM Штатное_расписание.
Далее я создаю запрос «Квалификация» позволяющий вывести в вычисляемом поле ФИО фамилию, имя и отчество сотрудников (в алфавитном порядке), название подразделения, должность и стаж работы. Он представлен: SELECT DISTINCTROW Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Штатное_расписание.[Назв подр], Штатное_расписание.Должн, Max(Сотрудник.стаж_работы) AS [Max - стаж_работы]FROM Штатное_расписание INNER JOIN Сотрудник ON Штатное_расписание.Должн = Сотрудник.Должн GROUP BY Сотрудник.Фамилия, Сотрудник.Имя, Сотрудник.Отчество, Штатное_расписание.[Назв подр], Штатное_расписание.Должн;
Запрос «Средний стаж» », который позволяет вычислить средний стаж сотрудников: SELECT DISTINCTROW Avg([Сотрудник].[стаж_работы]) AS [Avg - стаж_работы] FROM Сотрудник.
Запрос «Количество сотрудников», вычисляющий число сотрудников: SELECT DISTINCTROW Sum([Штатное_расписание].[Кол ед]) AS [Sum - Кол ед] FROM Штатное_расписание.
Запрос «Средний оклад», который вычисляет средний оклад сотрудников: SELECT DISTINCTROW Avg([Штатное_расписание].[Оклад]) AS [Avg - Оклад]
FROM Штатное_расписание.
Благодаря выполненным лабораторным работам в программном приложении Microsoft Access я изучила пользовательский интерфейс СУБД, объекты базы данных, свойства полей и их типы. Также мной были изучены способы создания и изменения таблиц, связей между таблицами, изучены возможности форматирования таблиц.