Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание запросов в MS Access
Помимо таблиц в СУБД существуют объекты, называемые запросами. В MS Access существуют целый ряд запросов: запросы на изменение, которые позволяют добавлять и изменять записи в одной или нескольких таблицах; запросы на создание таблиц, создающие новую таблицу на основе одной или нескольких существующих таблиц; запросы на автоподстановку, автоматически заполняющие поля для новой записи, а также другие типы запросов. При работе с базами данных одной из наиболее часто выполняемых операций является отбор множества записей, удовлетворяющих набору условий. Для выполнения данной операции в СУБД используется механизм запросов на выборку. Запросы на выборку позволяют просматривать подмножество записей без предварительного открытия таблицы, объединять данные из нескольких таблиц и выполнять вычисления над значениями полей. Один из методов создания запроса на выборку заключается в создании простого запроса с помощью Мастера запросов и последующей его доработке в режиме Конструктора. Чтобы создать простой запрос с помощью Мастера запросов, необходимо: 1. В окне базе данных на панели объектов выбрать ярлык «Запросы». 2. Дважды щелкнуть левой кнопкой мыши на строчке «Создание запроса с помощью мастера». 3. В появившемся окне выбрать с помощью кнопок со стрелками те поля из имеющихся таблиц или запросов, которые будут отображаться при выполнении данного запроса. 4. После нажатия кнопки «Далее» в следующем окне задать имя для нового запроса и выбрать дальнейшие действия (для задания условий отбора записей следует выбрать вариант «Изменить макет запроса»). Изменение макета запросов производится в режиме Конструктора запросов. На рис. 6 в качестве примера показан вид запроса на выборку данных о сотрудниках с высшим образованием, родившихся в период с 1971 по 1976 гг. В столбцах бланка отображаются названия полей, имена исходных таблиц, флажки «Вывод на экран» и условия отбора. Если условия отбора в различных столбцах размещены в одной строке, то они объединяются по логическому оператору И (And). Если условия должны объединятся по логическому оператору ИЛИ (Or), их следует размещать в разных строках бланка запроса. Сложное условие отбора в одном столбце может создаваться с применением логических операторов (табл. 3.5), которые выполняют действия над логическими значениями True (ИСТИНА) и False (Ложь) или над их битовыми эквивалентами «1» и «0». Таблица 3.5 Значения логических операторов
Кроме логических операторов возможно использование операторов сравнения с образцом (табл. 3.6). В MS Access имеется возможность задавать значение критерия отбора в диалоговом окне. Для этого вместо конкретного значения в условии отбора следует поместить фразу в квадратных скобках (во втором столбце запроса, показанного на рис.6, можно в качестве условия ввести фразу [Образование сотрудника: ]). Эта фраза будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса. Часто требуется не просто вывести на экран определенное подмножество записей, но и осуществить те или иные вычисления. В качестве примера можно рассмотреть определение среднего возраста сотрудника с высшим образованием. Таблица 3.6 Операторы сравнения с образцом
В отличие от электронных таблиц MS Excel в запросах нет возможности отображать одновременно подробные данные и итоговые результаты. Поэтому в запрос следует включать только поля, необходимые для получения итогов. В рассматриваемом примере имеет смысл включить следующие поля: поле «Образование» для того, чтобы задать условие; поле «Год рождения» для вычисления среднего возраста; поле «Фамилия» (или любое другое) для подсчета числа сотрудников в отобранной группе. Возможность указать действия, совершаемые над группой записей, появляется после нажатия на кнопку (Групповые операции). В появившейся в макете запроса дополнительной строке можно, нажав кнопку ▼ в правой части поля, выбрать операцию, которая будет выполняться по отношению к значениям соответствующего поля (см. рис. 7). Для проверяемого поля выбирается вариант «Условие». Для других полей может быть выбрана одна из стандартных статистических функций (например, для поля «Фамилия» - функция Count, подсчитывающая количество записей в группе). Значения стандартных статистических функций MS Access указаны в табл. 3.7. В данной СУБД имеется возможность создавать свои (пользовательские) функции для обработки данных, используя язык Visual Basic for Applications (VBA), но для этого требуется быть специалистом в программировании. Если использовать значение поля в качестве аргумента статистической функции недостаточно (например, требуется усреднять возраст сотрудника, а в поле записан год его рождения) или требуется осуществить более сложные вычисления, следует воспользоваться Построителем выражений (рис. 8).
Таблица 3.7 Статистические функции MS Access
В этом случае в качестве групповой операции для данного поля автоматически установится вариант «Выражение», а название поля запроса станет соответствовать названию выражения. Название выражения (это название будет выводиться на экран при выполнении запроса) в Построителе отделяется от самой формулы двоеточием. Для облегчения процесса создания сложных формул в Построителе выражений предусмотрены навигационные окна (сходные с Проводником MS Windows). Для вставки в формулу функции или поля таблицы нужный элемент следует найти через систему навигационных окон и нажать кнопку «Вставить» – функция или ссылка на поле таблицы автоматически вставятся в формулу. Как и в условия, в формулы можно вставлять и параметры, задаваемые пользователем при выполнении запроса, в примере на рис. 8 таким образом включено значение текущего года (фраза в квадратных скобках). Дополнительные параметры поля запроса (формат поля, число десятичных знаков после запятой, название поля и др.) могут быть изменены в режиме Конструктора при выборе пункта «Свойства» меню, всплывающего при нажатии правой кнопки мыши в области поля.
|