Понятие и характеристика запросов
Запросы представляют собой средство обработки данных, хранящихся в таблицах. Запросы осуществляют сбор запрашиваемых данных по указанным критериям из одной или нескольких таблиц, а также осуществляют поиск и структурирование данных. В сетевой технологии клиент-сервер основные базы данных хранятся на сервере баз данных, используя систему запросов можно уменьшить объем передаваемой по сети информации. Запрос является набором условий, в соответствии с которым осуществляется выборка информации из таблиц. Запуском запроса формируется новая таблица данных, обновляющаяся при повторных запусках запроса в соответствии с изменением информации в исходных таблицах.
Существуют различные типы запросов:
- на выборку;
- запросы с параметрами;
- перекрестные;
- запросы на изменение таблиц.
Запрос с параметром представляет собой отбор записей в базовой таблице по введенным параметрам.
Запрос на выборку позволяет получить результирующую таблицу, отображающую записи из базовых таблиц, которые удовлетворяют условиям запроса.
При построении выражений в запросах можно использовать:
- знаки сравнения: не равно;
- логические операции: And (И), Not (Нет), Or (Или);
- операторы SQL: In (при определении содержания элемента данных в списке значений) и Between…And (при выборе значений из указанного интервала);
- функции: Avg() (среднее арифметическое значение), Count() (количество записей), Sum() (сумма всех записей) и др.
К примеру:
- значения меньше 60, но больше 70 включительно, задаются в условии как =70;
- значения из отрезка [60;70] задаются в условии как > = 60 And
- все данные за 2015 год в условии задают как Between #01.01.2015#аnd#31.12.2015#;
- значения из списка перечисленных значений задают в условии как In(60; 65; 67; 70).
Формирование простых запросов
Как было отмечено выше, чтобы получить определенные данные из БД пользователь использует запросы. В результате выполнения запросов образуются таблицы с временными наборами данных, записи которых включают поля из одной или нескольких таблиц. Запросы используют подобно таблицам. Соответствующие временные наборы просматриваются в табличном представлении. На основе запросов строятся отчеты или формы. Обновленные данные во временном наборе включаются в таблицы. С помощью запросов можно по-разному выполнить доступ к одной и той же информации
Приложением MS Access обеспечивается корректная связь между таблицами БД за счет соответствующих друг другу значений эквивалентных полей данных таблиц. При включении в запросы связанных таблиц БД в окне Запрос-выборка между ними автоматически появляется соединительная линия. В случае отсутствия связи между таблицами запроса (не возникает автоматически) их можно соединить в окне Запрос-выборка. Для чего обязательно требуется наличие в них полей с совпадающими данными. Отметим, что подобное соединение действует только для данного запроса, при использовании этих же таблиц в других запросах их потребуется соединить заново.
Помимо запросов-выборок существуют:
- запросы на создание таблиц, которые создают для хранения информации новую таблицу и оказываются особенно полезными при создании резервных копий;
- запросы на добавление, с помощью которых присоединяются записи к имеющейся таблице;
- запросы на обновление, позволяющие изменить значение любого поля БД для записей, которые удовлетворяют указанным критериям;
- запросы на удаление, с помощью которых уничтожаются в таблице все записи согласно поставленным критериям;
- перекрёстные запросы, упорядочивающие информацию в БД по двум и более значениям группировки и на основании общих подмножеств соответствующих групп позволяющие сделать определенные выводы.
В запросах можно осуществлять вычисления следующих типов:
- встроенные (итоговые), используемые при расчете следующих значений по группам записей или по всем записям, отобранным в результате запроса: суммы, среднего значения, числа значений, минимального или максимального значения, стандартного отклонения или дисперсии;
- пользовательские вычисления, используемые при расчетах с числовыми и строковыми значениями либо значениями дат для каждой записи с данными из одного или нескольких полей.
Результаты вычислений, выводимые в поле, не сохраняются в базовой таблице. Вычисления выполняются каждый раз при выполнении запроса, поэтому результатами, как правило, представлено текущее содержимое БД.
Обновление вычисленных результатов вручную невозможно.
Вычисление итоговых значений с использованием перекрестных запросов
Перекрестные запросы применяют при расчетах и представлении данных в структуре, которая облегчает их анализ. С помощью перекрестных запросов можно подсчитать сумму, среднее, число значений или выполнить другие статистические расчеты, в итоге результаты сгруппируются в виде таблиц по 2 наборам данных: 1 - определяет заголовки столбцов, а 2 - заголовки строк. Функции, которые определяют тип статистической обработки, можно выбрать в строке Групповая операция на панели запроса.
Перекрестные запросы легко создаются в режиме Конструктора:
- создадим перекрестный запрос, используя режим Конструктора, и добавим таблицы, записи из которых необходимы для вычислений;
- добавим поля, по которым выполняются вычисления, и зададим условия отбора;
- нажмем кнопку Групповые операции на панели инструментов, в результате появится строка Групповая операция;
- в ячейках этой строки для каждого поля запроса выберем одну из статистических функций: Sum, Avg, Min, Max, Count, StDev или Var, либо другие функции – First и Last.
Примеры создания запросов
Для начала предлагаем создать простой запрос на выборку, который, к примеру, осуществит отбор данных о скважинах с легкой плотностью нефти глубиной от 3200м до 3500 м и количеством работающих менее 60. Для чего используем поля Плотность нефти, Глубина скважины, Количество работающих. Создать запросы можно с помощью Мастера запросов или Режима конструктора. Рассмотрим оба варианта.
Выбираем во вкладке Создание раздел Другие кнопку Мастер запросов. Процесс аналогичен созданию форм.
Выберем таблицу Бригада для запроса и используя клавишу > перенесем поля Месторождение, Плотность нефти, Глубина скважины в окно запроса. Далее из таблицы Бригада добавим поле Количество работающих. Затем нажмем на кнопку Готово.
Следующим шагом зададим имя запроса (например, Запрос по плотности и глубине). Выберем Просмотр отчета. Нажмем Готово и посмотрим на результат отбора по указанным полям. При закрытии созданного запроса его имя появится в главном окне БД.
Откроем это окно еще раз и перейдем на структуру запроса (Вид на Панели инструментов). Рассмотрим структуру запроса. В строке Сортировка поля Плотность нефти выберем сортировку по возрастанию. Для просмотра результата запроса щелкнем на Панели инструментов значок запуска. Вернемся на структуру запроса и установим сортировку по убыванию. Просмотрим результат выполнения запроса. Изменим запрос, добавляя в строку Условие отбора поля Забой скважины условие Between 3200 and 3500. Запустим запрос с изменениями на выполнение. Вернемся на структуру запроса и добавим условие
Теперь создадим подобный запрос с помощью Конструктора. Для этого выберем вкладку Создание раздел Другие, щелкнем на кнопке Новый запрос - создание в режиме конструктора. Из окна Все таблицы перетащим таблицы Бригады, а потом - Скважины.
При перетаскивании полей (№ скважины, плотность нефти, Забой скважины, Количество работающих) из таблиц Скважины и Бригады в бланк запроса определим поля таблиц для запроса и порядок их размещения. Включим отображение полей в строке Вывод на экран. Введем условие отбора (легкая) в строку Условие отбора в столбце Плотность нефти, условие отбора Between 3200 and 3500 введем в столбце Забой скважины, в столбце Количество работающих - условие
Перейдем в режим таблицы и просмотрим записи БД, которые были отобраны в соответствии с созданным запросом. Закроем окно запроса и сохраним макет запроса с именем Запрос Нефти легкой плотности.
Приступим к созданию нового запроса, запроса с параметром Поиск скважин по месторождению. Для этого создадим запрос на выборку и откроем его в режиме конструктора. Режим конструктора позволяет создавать новые объекты БД или изменять структуру существующих . Потом из окна Все таблицы перетащим таблицу Бригады, затем - Скважины. Перетаскивая поля из указанных таблиц в бланк запроса, определим поля таблиц для запроса и порядок их размещения. В строке Вывод на экран включим отображение полей. В строке Условие отбора в столбце поля Месторождения, используемое как параметр, введем в ячейку строки Условие отбора в квадратных скобках текст приглашения [Введите название месторождения], который затем отобразится в диалоговом окне. Сохраним запрос, назвав его Запрос по месторождению. Чтобы проверить действие запроса, откроем его и запустим (или выберем в меню Вид опцию Режим таблицы). В открывшемся окне Введите значение параметра вводим название месторождения, которое необходимо найти. Просмотрим результат выполнения запроса. При запуске запроса с параметрами текст отобразится в диалоговом окне без скобок. Закроем запрос и выполним поиск другого месторождения, задавая новый параметр.
Описанные выше действия можно использовать при создании запросов с параметрами для следующих типов: на выборку, перекрестный, на добавление, на создание таблицы, на обновление.