Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб. практ.Рогальский. ч. 1.doc
Скачиваний:
70
Добавлен:
31.05.2015
Размер:
13.76 Mб
Скачать

Теоретические сведения

Запросы являются инструментом поиска и структурирования данных. Запрос, адресованный одной или нескольким таблицам, инициирует выборку определенной части данных и их передачу в таблицу, формируемую самим запросом. В результате вы получаете подмножество информационного множества исходных таблиц, сформированное по определенному закону. Если обрабатываемый объем информации велик, выделение необходимых данных в такое подмножество позволяет существенно сократить время их обработки. В системах типа клиент–сервер, где основные базы данных хранятся на файловом сервере, система запросов позволяет уменьшить объем информации, передаваемой через локальную сеть.

Существует несколько типов запросов, каждый из которых предназначен для определенной цели. Запросы создается в режиме Конструктора или с помощью Мастера запросов.

Мастер запросов позволяет создавать Простой запрос, Перекрестный запрос, Повторяющиеся записи, Записи без подчиненных.

Простой запрос на выборку служит для отображения данных из указанных пользователем полей таблиц, запросов или для создания новой таблицы.

Выполните команду Создание →Другие → Мастер запросов. Выберите Простой запрос.

Из меню Таблицы и запросы выберите таблицу или запрос, из которых будут включаться поля в новый запрос. Из списка Доступные поля выберите поля, которые необходимо включить в новый запрос и, используя кнопку >, переместить их в зону Выбранные поля.

Если простой запрос создается на основе нескольких таблиц, то последовательно выбирая каждую таблицу, добавляем необходимые поля в область Выбранные поля. Таблицы, из которых выбираются поля, должны быть предварительно связаны между собой.

Если выбранные поля содержат поля с типами числовой и денежный, то Мастер запросов откроет дополнительное окно для выбора переключателя Подробный... или Итоговый. В подробном запросе отражаются все записи, в итоговом отражаются только записи с итогами по полям, указанным пользователем в меню кнопки Итоги. Можно выполнять вычисления: Sum – подсчет значений поля по всем записям; Аvg – расчет среднего значения; Мin – расчет минимального значения; Мах – расчет максимального значения.

В этом же окне можно установить флажок для подсчета количества записей в таблице.

Перекрестный запрос – это особый тип запросов, отображающий результаты в сетке, по виду схожей с листом Excel. Перекрестные запросы выполняет заданное вычисление (Сумма, Среднее, Min и т.д.) значений и затем группируют их по двум наборам фактических данных — один набор вдоль боковой стороны (заголовки строк) и второй набор вдоль верхней части (заголовки столбцов).

Выбрав в Мастере заспросов Перекрестный запрос, получаем первое окно, в котором выбираем нужную таблицу. Нажимаем Далее. В следующем окне выбираем поле выбранной таблицы, значения которого будут располагаться вдоль боковой стороны. Нажимаем Далее и переходим к третьему окну, где выбираем поле, значения которого будут располагаться в верхней части.

В нижней части каждого окна имеет область Образец. Там видно как будут располаться выбранные поля.

Нажимаем Далее и переходим к четвертому окну, где выбираем поле и функцию вычисления, которая будет применена к значениям выбранного поля.

Выбираем Далее и, нажав кнопку Готово просматриваем результаты запроса.

С помощью Конструктора можно создавать: простые запросы, запросы по условию, запросы с вычисляемыми полями, итоговые запросы, запросы на обновление полей и удаление записей, параметрические запросы. Основные типы запросов доступны на ленте в группе Тип запроса на вкладке Конструктор.

Запрос по условию или условный запрос – позволяет отобрать записи, удовлетворяющие определенным условиям.

Выполнив команду Создание → Другие → Конструктор запросов, открываем окно Добавление таблицы. За ним размещается окно Запрос на выборку – основное окно конструктора запросов. Оно неактивное в данный момент, но станет активным, как только будут выбраны и добавлены необходимые для запроса таблицы из списка и закрыто окно Добавление таблиц.

В окне Запрос на выборку появятся списки полей выбранных таблиц.

Характеристика окна Конструктора запросов.

В верхней части окна находится схема данных запроса. Она содержит список добавленных таблиц, включенных в новый запрос, и отображает связи между ними.

В нижней части окна располагается бланк запроса. Каждая строка этого бланка выполняет определенную функцию:

Поле – в этой строке помещаются поля из таблиц, которые используются для создания нового запроса.

Имя таблицы – эта строка показывает таблицу, из какой выбрано данное поле.

Сортировка – в этой строке указывается тип сортировки для значений данного поля.

Вывод на экран – эта строка предназначена для установки флажков в тех полях, которые должны отображаться в новом запросе на экране. В отличие от этих полей в запрос могут включаться поля, используемые только с целью установки критерия отбора, но их вывод на экран не предполагается.

Условие отбора – в эту строку (и в строку, расположенную ниже ее) вводятся критерии отбора записей, которые ограничивают поиск записей в таблицах.

В бланк запроса поля из таблиц можно поместить следующими способами:

а) Перетащить мышью поочередно из верхней части окна в нижнюю те поля, которые необходимо включить в запрос. Каждое поле помещается в отдельный столбец бланка запроса в строке Поле.

б) Дважды щелкнув имя поля в верхней части окна.

в) Щелкнув в столбце в конце строки Поле и из раскрывающегося списка выберать нужное поле.

В строке Условия отбора на пересечении с полем, по которому будет выполняться отбор записей, вводится критерий отбора.

Если необходима сортировка данных, щелкните мышью в правом углу ячейки на пересечении строки Сортировка и того поля, значения которого необходимо упорядочить. В появившемся списке выберите тип сортировки.

Чтобы увидеть результат выполнения условного запроса необходимо его запустить. Запуск запроса можно осуществить: нажать кнопку Выполнить (!) на панели инструментов, или выполнить команду Конструктор → Результаты → Режим таблицы.

Полученный запрос необходимо сохранить.

Условия отбора. При создании запросов важно правильно сформулировать условия отбора записей из базы данных.

Простой критерий выборки. Записи выбираются по совпадающим значениям поля. Например, из поля Город необходимо выбрать значения Минск. Для этого в бланке запроса в строке Условие отбора в графе Город вводится с клавиатуры значение «Минск».

Точное несовпадение значений одного поля. Из базы выбираются все записи, кроме тех, для которых задано условие. Например, необходимо выбрать все записи в поле Город, кроме тех, которые в этом поле имеют значение Минск. Для этого в строке Условия отбора в графе Город вводится выражение Not «Минск» или <> «Минск». Логический оператор Not исключает записи со значением Минск, оператор сравнения <> означает «не равно»

Неточное совпадение значений поля. Такое условие можно задавать, если не известны значения полей. Для выборки используется оператор сравнения Like (подобный). Рядом с оператором записывается образец, содержащий или, точное значение, например, Like «Петров», или включающий символы шаблонов, например, Like «Пет*».

Оператор Between... аnd ... служит для проверки принадлежности диапазону, верхняя и нижняя граница которого соединена логическим оператором and (например, Веtween 2001 аnd 2010).

Операторы можно употреблять с текстовыми и цифровыми полями, а также с полями дат.

Объединение критериев одного поля. Если при наличии взаимоисключающих условий или двух наборов независимых условий требуется, чтобы выполнялось лишь одно условие или набор условий, в бланке запроса следует использовать строки Условия и или. Условия, заданные в строках Условия и или, объединяются с помощью оператора OR. Если налагается обязательное выполнение всех условий, то условные выражения должны быть соединены с помощью оператора AND (И).

Если нужно задать несколько условий, следует использовать строки, расположенные под строкой или.

Объединение критериев нескольких полей. Условия, заданные для различных полей в строке Условия, объединяются с помощью операторов AND и OR.

Условие отбора для результатов итоговых вычислений. В итоговых запросах существуют два типа критериев отбора записей.

Первый тип исключает записи, не удовлетворяющие критериям, перед выполнением итоговых вычислений. Второй тип критериев применяется к результату итоговых вычислений.

Создание запроса с вычисляемым полем.

При построении запросов можно создавать вычисляемые поля, значения которых будут являться результатом выражений над значениями других полей таблицы.

Для построения выражения установите курсор в свободный столбец нового запроса (во избежание ошибок ввода) и нажмите кнопку Построитель выражений на панели инструментов (пункт меню Конструктор, вкладка Настройка запросов).

Окно Построителя выражений имеет четыре области со своими полосами прокрутки. В верхней области располагается создаваемое выражение и кнопки операторов. В нижней части окна находятся три списка поиска необходимых для построения выражения элементов:

– левый список содержит список всех источников данных (таблиц, запросов, форм, отчетов), а также средств построения выражений (функции, константы, операторы, общие выражения). Они изображены в виде папок. Плюс (+) на папке обозначает, что она имеет вложенные элементы;

– средний список служит для показа элементов, входящих в выбранный объект из левого списка;

– правом списке выполняется окончательный выбор элементов, которые непосредственно входят в составляемое выражение.

Левый, средний и правый списки имеют иерархическую подчиненность, и поиск начинается c левого списка.

Вставка элемента выражения в Поле ввода Построителя выражений выполняется в следующем порядке:

• В левом списке в нижней половине окна Построителя выражений раскройте двойным щелчком мыши папку, содержащую элементы нужного типа (для запросов используется элемент Таблицы).

• Выделите нужный объект (таблицу, в которой содержится поле, используемое в выражении).

• В среднем и правом списках выделите нужный элемент, щелкните его дважды мышью или нажмите кнопку Вставить для переноса его в верхнюю часть окна.

• Выберите нужную кнопку операторов и щелкните ее мышью для переноса в создаваемое выражение или наберите оператор с клавиатуры.

• Повторите те пункты, которые обеспечат дальнейшее построение выражения.

• После завершения работы над выражением нажмите кнопку ОК. Выражение будет занесено в строку Поле бланка запроса.

Задайте подпись для построенного выражения, выполнив команду Конструктор → Страница Свойств, перейдите на вкладку Общие, в строке Подпись внесите смысловую подпись выражения. Запустите запрос.

Пример построения выражения, вычисляющего стаж работы сотрудников: Выражение 1: Year(Now()) - [Сотрудники]![Год поступления]. Функция Now( ) – вычисляет текущую дату, функция Yеаr( ) – отделяет год от данного типа Дата/время. Функции могут быть введены вручную или с помощью папки Функции в левом списке окна Построителя выражений.

Создание итогового запроса. Итоговый запрос – это запрос, который выполняет вычисления в отобранных группах записей. К итоговым операциям относятся:

Sum – суммируются отобранные значения поля;

AVG – вычисляется среднее арифметическое отобранных значений поля;

Min – находится минимальное значение среди отобранных значений поля;

Мах – находится максимальное значение среди отобранных значений поля;

Соunt – вычисляется количество отобранных значений в поле.

Для создания итогового запроса необходимо создать новый в режиме Конструктора запрос на выборку с нужными полями таблиц.

Для добавления в бланк запроса строки Групповая операция (если она в настоящий момент отсутствует) выполните команду Конструктор → Показать или скрыть → Итоги на ленте.

В каждом столбце в строке Групповая операция выберите из раскрывающегося списка нужную итоговую операцию. В этом списке, кроме итоговых операций, находятся Группировка, Выражение и Условие.

Группировку применяют для того поля, которое является определяющим при создании группы записей.

Условие выбирают для поля, по которому задаются критерии отбора.

Выражение используется при отсутствии каких-либо групповых операций над значениями поля.

Создание запроса на обновление полей. Запрос на обновление используют в том случае, если необходимо обновить значения полей, т.е. дать новые значения. Например, при повышении ставок сотрудников старые значения поля СТАВКА в базе данных должны быть заменены новыми.

В режиме Конструктор создаем новый запрос, добавляем таблицу содержащую поле для обновления.

В бланке запроса добавляем все необходимые поля – и те, которые требуется изменить и те, для которых должны быть заданы критерии отбора.

Выбираем тип запроса Обновление, нажав кнопку Конструктор → Тип запроса → Обновление. В бланке запроса появится строка Обновление в которой записывается выражение на пересечении с тем полем, где должна произойти замена старых значений новыми. Выражение для повышения ставок на 10% будет выглядеть: [СТАВКА]* 1,1.

Если при этом в запросе требуется выполнение определенных условий, то вводятся критерии в строку Условие отбора аналогично тому, как это делалось для условного запроса. Например, если ставки повышены сотрудникам, поступившим на работу до 1990 года, в качестве условия отбора следует записать выражение < 1990, где 1990 – это год поступления на работу.

Результат выполнения запроса, после запуска запроса на выполнение, можно увидеть, только открыв саму таблицу (значения поля будут изменены).

Создание параметрического запроса. Параметрический запрос позволяет задавать разные условия отбора записей непосредственно при вызове запроса. Это исключает необходимость открытия запроса в режиме Конструктора для внесения изменений в строку Условия отбора.

Для создания параметрического запроса используется обычный запрос на выборку. В строке Условие отбора в таком запросе записывается условие в виде текста приглашения заключенного в квадратные скобки. Например, [Введите фамилию сотрудника].

После сохранения запроса и запуска его на выполнение, предварительно, появится всплывающее окошко Введите значение параметра с текстом приглашения «Введите фамилию сотрудника» (в нашем примере).

Введя значение параметра (фамилию сотрудника) нажмите кнопку ОК.

Если параметр будет введен правильно (будьте внимательны к его вводу), на экран выводится запрос с записями, отобранными по этому параметру. Если такого параметра нет, то будет выведен пустой запрос.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]