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

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

Запрос может быть сформулирован в среде MS Access на двух языках

ü QBE (Query By Example) - язык запросов по примеру (образцу), предназначенный для пользователей - не программистов.

ü SQL (Structured Query Language) - структурированный язык запросов, используемый пользователями - программистами в программах приложений на VBA (Visual Basic for Application). Язык SQL имеет большие возможности по сравнению с языком запросов QBE. Это означает, что все, что можно сформулировать на языке QBE, можно сформулировать и на SQL, но не наоборот. Например, язык QBE не позволяет создавать и редактировать структуру таблицы и пр

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

Виды Запросов:

ü Запрос на Выборку --выбирает данные из взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса.

ü Запрос на Создание Таблицы -- основан на запросе на выборку, но результат сохраняется в таблице

ü Запросы на Обновление, Добавление, Удаление --Запросы действия, в результате которых изменяются данные в таблице.

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

Разработка Запроса производится в режиме Конструктора. Для создания запроса выделите объект Запросы, нажмите кнопку Созда ть и выберите режим Конструктора. Укажите используемые в запросе таблицу или таблицы (как при работе со схемой данных).

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

При заполнении бланка запросов по образцу необходимо:

ü ·В строку Поле включить имена полей, используемых в Запросе.

· Двойной щелчок мыши на имени поля в таблице, вынесенной в верхнюю часть бланка. При этом имя таблицы автоматически заносится в соответствующую строку внизу бланка

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

· выбрать нужное поле из списка в строке Поле внизу бланка запроса

ü Для включения всех полей таблицы можно перетащить символ *.

ü ·В строке Вывод на экран отметить поля, которые должны быть включены в результирующую таблицу (Можно для поля задать условие отбора, но значение поля не отображать на экране)

ü ·В строке Условие отбора задать условия отбора записей (например >100,Иванов, Like С*, between 10 and 20)

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

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

Для просмотра запроса в режиме SQL необходимо воспользоваться пунктом меню Вид – Режим SQL

Примеры условий отбора:

>10 больше 10
< >2 не равно 2
Between 5 And 10 больше 5, но меньше 10
Date() за текущую дату
< Date -30 месяц назад
Between Date() And Date() - 90 в течении последних 90 дней
Between Date() And DateAdd(‘’м’’;-3;Date()) в течении последних трех месяцев
Between 01.01.97 And 31.12.97 За 1997 год
Иванов (‘‘Иванов’’) только для Иванова
И* (Like ‘’И*’’) все клиенты фамилия, которых начинается на И
Like “[!ъ]*” Строка не должна начинаться со знака ъ
[Введите Фамилию Сотрудника] Просит задать фамилию
Between [Введите Дату1] And [ Введите Дату2] возможность самому задавать временной интервал
Between 01.01.00 & [Год] And 31.12.00 & [Год] За введенный с клавиатуры год
In(1;10;50;100) 1 или 10 или 50 или 100
In(“Минск”; “Киев”) Минск или Киев
Null. (пусто)- не введено никакого значения
Not IsNull (не пусто), т. е. значение введено

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

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

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

Примеры вычисляемых полей

Стоимость: [Товары]![Цена]*[Продажи]![Количество]

Клиенты: [Клиенты]![Фамилия] & ‘‘ ’’&[ Клиенты]![Имя]& ‘‘ ’’& [Клиенты]![Отчество]

Сформировать выражение можно при помощи Построителя выражений,который запускается из контекстного меню, связанного со строкой Условие отбора на бланке или при помощи соответствующей кнопке на панели инструментов. При составлении выражений имена полей заключаются в квадратные скобки, символьные константы - в кавычки, имена объектов БД отделяются от полей "!"

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

Результат выполнения запроса

Параметрические Запросы. Конкретное значение поля в условии отбора может вводится непосредственно в бланк Запроса или задаваться пользователем при выполнении Запросы в диалоговом окне. Например используя таблицу КЛИЕНТЫ можно создать параметрический запрос, позволяющий просматривать только клиентов то из одного города, то из другого города. Для этого в строку Условие отбора ввести [Назовите город] для поля Город. Результат можно просмотреть в режиме таблицы.

В данном примере введено условие, позволяющее пользователю самому вводить фамилию клиента и дату заказа. При выполнении запроса сначала выполняется условие записанное в левом столбце ([Введите дату]).

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

Тот же запрос в режиме Конструктора

Для создания запроса необходимо

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

ü Из таблицы Товары включить в запрос поле Название

ü Создать вычисляемое поле Стоимость

ü Для отображения строки Групповая операция воспользоваться командой Вид - Групповые операции

ü Для поля Стоимость выбрать групповую операцию Sum, а для поля Наименование —. Группировка

Внимание! Группировка - означает, что данное поле является полем группирования (устанавливается по умолчанию)

Sum - суммирование всех значений поля по группе данных

Avg - среднее значение поля по группе

Min или Max - минимальное или максимальное значение поля в группе

Count - количество записей, входящих в группу

StDev -среднеквадратическое отклонение

Var - дисперсия

First или Last - первое или последнее значение поля в группе

Выражение - позволяет ввести выражение вместо имени поля в строке Поле бланка запроса

Условие - показывает, что это поле используется только для задания условия отбора данных в запросе. Это поле не отображается в динамическом наборе данных.

Если группировка производится по нескольким полям, то слово Группировка должно быть в каждом из них

Совет! Для подсчета общей стоимости используется групповая операция Sum, а для подсчета количества заказов – Count.

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

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

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

Тот же запрос в режиме Конструктора

Создание перекрестного запроса

ü создать запрос на выборку данных на основе таблицы Товары и Клиенты, Продажи, отобразив в динамическом наборе поля: Фамилия и Название

ü Создать два вычисляемых поля Стоимость.

ü преобразовать запрос на выборку в перекрестный запрос при помощи пункта меню Запрос - Перекрестный иликнопки Тип запроса на панели Инструментов

ü выбрать Sum в строке Групповая операция для вычисляемых полей

ü заполнить строку перекрестная таблица.

Для отображения в поле Стоимость символа денежной единицы

ü Выделите поле Стоимость

ü Воспользуйтесь командой Свойство из Контекстного меню

ü В стоке формат установите Денежный

Для сохранения результата запроса используется Запрос На Создание Таблицы. Он основан на Запросе на выборку, но результат сохраняется в таблице. Запрос на выборку можно преобразовать в запрос на создание таблицы при помощи пункта меню Запрос—Создание Таблицы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: