Создание простых запросов
Лабораторная работа № 3 Цель работы: Сформировать умения создавать простые запросы для выбора данных.
Запрос в MS Access – это требование предоставить информацию, накопленную в таблицах базы данных. Запрос можно получить с помощью с помощью инструментов запроса. Запрос может относиться к одной или к нескольким связанным таблицам. На основании запроса MS Access формирует динамический набор записей. Физически он выглядит как таблица, хотя фактически не является ею. Динамический набор записей является временным (или виртуальным) набором записей и не хранится в базе данных. После закрытия запроса динамический набор записей этого запроса прекращает свое существование. MS Access поддерживает различные типы запросов, которые можно разбить на шесть основных категорий. Запрос на выборку. Извлекает данные из одной или нескольких таблиц (основываясь на заданных критериях) и результаты представляет в виде динамического набора записей. Групповой запрос. Представляет специальную версию запроса на выборку. Позволяет вычислять суммы, подсчитывать количество записей и выполнять расчет итоговых значений. Для этого запроса MS Access добавляет в бланк запроса строку Групповая операция. Запрос на изменение. Позволяет создавать новые таблицы (команда Создание таблицы) или изменять данные в существующих таблицах (команды Удаление, Обновление и Добавление). Если в наборе результатов запроса на выборку можно вносить изменения только в одну запись за раз, то запрос на изменение разрешает вносить изменения в несколько записей сразу при выполнении этой операции. Перекрестный запрос. Отображает результаты статистических расчетов (такие как суммы, количество записей и средние значения). Эти результаты группируются по двум наборам данных в формате перекрестной таблицы. Первый набор выводится в столбце слева и образует заголовки строк, а второй выводится в верхней строке и образует заголовки столбцов. Запрос SQL. Существуют три типа запросов SQL: запрос на объединение, запрос к серверу и управляющий запрос, которые используются для манипуляций с базами данных SQL. Создаются эти запросы с помощью написания специальных инструкций SQL. Запрос с ограничением, или Top(n). Этот ограничитель запроса можно использовать только в паре с одним из предыдущих пяти типов запросов. Он позволяет задавать число первых записей или часть общего количества записей в процентах, которую вы хотели бы получить в любом виде запроса. С помощью запросов можно выполнять следующее: выбирать таблицы, выбирать поля, выбирать записи, сортировать записи, выполнять вычисления, создавать таблицы, создавать формы и отчеты на основе запроса, создавать диаграммы на основе запроса, использовать запрос в качестве источника данных для других запросов (подчиненных запросов) и вносить изменения в таблицы. Создание запроса и работа с ним выполняется во вкладке Запросы окна базы данных. Для работы с запросом можно воспользоваться панелью инструментов Конструктор запросов.
Рис. 1. Панель инструментов Конструктор запросов.
MS Access допускает два способа создания запроса: с помощью мастера и в режиме конструктора. Для того чтобы приступить к созданию запроса с помощью мастера можно выполнить двойной щелчок мышью на строке Создание запроса с помощью мастера во вкладке Запросы окна базы данных или щелчок мышью на кнопке Создать, а затем выбрать вариант Простой запрос в окне диалога Новый запрос. Создание запроса на выборку для сортировки информации В работе далее для создания запросов будем использовать режим конструктора. Самый быстрый способ запустить этот режим – выполнить двойной щелчок мышью на строке Создание запроса в режиме конструктора. При этом появится окно диалога Добавление таблицы (см. рис. 2).
Рис. 2. Окно диалога Добавление таблицы.
Создание запроса для сортировки информации рассмотрим на следующем примере. Требуется составить список книг московских издательств, рассортированных по фамилиям авторов. В динамический набор надо включить следующие поля: Автор, Название, Наименование и Год издания. Обратим внимание на то, что в нашем запросе будут использоваться поля из двух таблиц: Издательства и Книги. Поэтому в окне диалога надо выделить имена этих двух таблиц. Для этих целей щелкните вначале, например, по имени Издательства, а затем, удерживая клавишу CTRL, щелкните по имени Книги. После того как требуемые имена таблиц выделены, надо в окне диалога Добавление таблицы щелкнуть мышью по кнопке Добавить, а затем– Закрыть. В результате выполнения таких действий в верхней части окна запроса в режиме конструктора появятся списки полей для каждой из выбранных таблиц (см. рис. 3).
Рис. 3. Окно запроса в режиме конструктора.
Окно запроса в режиме конструктора предназначено для создания новых и изменения существующих запросов. При создании запросов в этом режиме используется механизм запросов по образцу QBE (Query by Example). Окно в этом случае состоит из двух частей. В верхней части окна размещаются списки полей, из которых будет формироваться запрос. В нижней части окна располагается бланк QBE, в который нужные для запроса поля перемещаются при помощи мыши из списков полей, размещенных в верхней части окна. Для изменения относительной высоты верхней и нижней частей окна используется специальная разделительная линия. При установке курсора на эту линию курсор приобретает вид двунаправленной стрелки. В это момент разделительную линию можно перемещать вверх или вниз. Имена полей, которые будут образовывать динамический набор, должны быть в соответствующем порядке размещены в строке бланка QBE. Сделать это можно несколькими способами. Самый простой способ состоит в двойном щелчке мышью на имени в списке полей. Указанным способом в строке Поле бланка QBE поместите поля: Автор, Название, Наименование, Год издания и Город. Последнее поле нам понадобилось, чтобы задать условие отбора для выбора для выбора книг московских издательств. В строку Условие отбора для поля Город наберите текст " Москва" (задание условий отбора подробнее будет рассмотрено ниже). Даже, если вы текст в кавычки не возьмете, MS Access сам это сделает. Условие отбора нам понадобилось для того, чтобы в запросе выбирались не все книги, а только книги, изданные в Москве. Поскольку по условию задачи поле Город не надо выводить на экран, то в строке Вывод на экран для этого поля уберите щелчком мыши пометку (" птичку"). Для того чтобы в динамическом наборе записи выводились в алфавитном порядке по фамилиям авторов, надо в строке Сортировка для поля Автор задать направление сортировки. Выполните щелчок мышью на ячейке в строке Сортировка для поля Автор. При этом справа в этой ячейке появится кнопка раскрытия списка направления сортировки. Выберите в этом списке направление сортировки – по возрастанию. Порядок обработки полей при сортировке по нескольким полям определяется их положением в бланке QBE: сначала сортируются значения в крайнем левом поле и далее слева направо. После указанных действий бланк QBE будет иметь вид, представленный на рисунке 4. Рис. 4. Вид бланка QBE для решения задачи. Сейчас выполним созданный нами запрос. Для этого нажмите кнопку Режим таблицы на панели инструментов Конструктор запросов (первая кнопка – см. рис. 1). После нажатия этой кнопки вы увидите список книг московских издательств, рассортированный в алфавитном порядке по фамилиям авторов (см. рис. 5). Для того чтобы установить оптимальную ширину столбца списка, надо выполнить двойной щелчок мышью на правой границе столбца в строке заголовков полей. Установите оптимальную ширину для всех столбцов списка книг, как это сделано на рис. 5. Рис. 5. Результат выполнения запроса. После того как запрос создан, его можно сохранить. Для этой цели надо выполнить команду Сохранить запрос или Сохранить запрос как в меню Файл. Если мы выполняем сохранение первый раз, то выполнение этих команд приводит к одному и тому же результату – на экране появляется окно диалога, приведенное на рис. 6. Рис. 6. Окно диалога для сохранения запроса.
Сохраните созданный нами запрос под именем Список книг московских издательств. Для этого введите новое имя (старое имя Запрос1, которое предложил Access, после нажатия первой клавиши исчезнет, так что нет необходимости специально его убирать) и нажмите кнопку OK.
|