Запросы. Виды запросов. Составные элементы запросов


Запросы. Виды запросов. Составные элементы запросов

Запрос – это обращение к СУБД для выполнения каких-либо операций с данными: выбора части данных из общего объема, добавление вычислимых полей, массовое изменение данных и т.д.

В запросе можно:

отобрать информацию из нескольких связанных таблиц;

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

пользователь может сам ввести значения параметров, добавить вычисляемые поля;

выполнить итоговые расчеты.

Типы запросов:

выборка;

создание таблицы;

обновление (изменение данных);

добавление записей;

удаление записей;



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

В Microsoft Access есть несколько типов запросов.

^ Запросы на выборку

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

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

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

Расчет сумм, средних значений, количества записей и других итоговых значений.

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

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

^ Перекрестные запросы

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

Простейшими примерами перекрестных запросов являются:

расписание занятий: по строкам время занятий, по столбцам дни недели, а на пересечении преподаваемые предметы; но хранятся они в виде единой таблице, в каждой из строк которой значения трех полей – дня недели, времени и название занятия;

журнал оценок или посещаемости: по строкам фамилии, по столбцам дни недели, а на пересечении оценки или отметка пропуска занятий.

^ Запросы на изменение

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

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

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

^ На добавление записей.   Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты».

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

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

^ Запросы SQL

Запрос SQL — это запрос, создаваемый при помощи инструкций SQL. Язык SQL (Structured Query Language) используется при создании запросов, а также для обновления и управления реляционными базами данных, такими как базы данных Microsoft Access.

Когда пользователь создает запрос в режиме конструктора запроса, Microsoft Access автоматически создает эквивалентную инструкцию SQL. Есть ряд запросов, которые можно сделать только в режиме SQL. Опытным программистам часто проще сразу писать выражение на SQL, чем формировать запрос.

Вид запроса в конструкторе:





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

^ Составные элементы запросов СУБД Access.

1. Таблицы запроса и связи между ними.

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

^ 2. Поля вывода

Использование знака звездочки (*) в бланке запроса

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

^ 3. Сортировка записей по значениям одного или нескольких полей

Если вы сортируете по нескольким полям, то Microsoft Access сначала выполняет сортировку по первому полю слева. Поэтому нужно упорядочить поля слева направо в том порядке, в котором требуется выполнить сортировку.

^ 4. Группировка записей по значениям одного или нескольких полей

Для формирования итогового запроса предварительно создайте запрос на выборку или перекрестный запрос в конструкторе запросов. Нажмите значок ∑ на панели инструментов «Стандартная». В конструкторе появится дополнительная строка «Группировка». Для поля или полей, по которым выполняется группировка, нужно оставить значение Группировка в ячейке Групповая операция.

Для итоговых значений используются следующие статистические функции:

Sum - суммирование

Avg – среднее значение

Count - количество

First, Last – первая или последняя запись

Max, Min – максимальное или минимальное значение

StDev – стандартное отклонение

Var - дисперсия.



^ 5. Условие отбора

Совпадение



Для создания формул можно использовать построитель выражений



Для ввода альтернативных условий для одного поля воспользуйтесь строкой Или.

Даты вводятся в символах #, тексты – в кавычках.

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

[ Имя таблицы]![Имя поля]

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

^ 6 Вычислимые поля.

Все данные, которые можно вычислить, не должны храниться в таблицах!

В запросах вводятся дополнительные поля по следующей схеме:

Название поля: формула.

Например

Сумма: [Цена]*[Количество]

^ 7. Запросы с параметрами

Если вы хотите, чтобы условия отбора задавались во время формирования запроса, в формуле вместо конкретных значений вставьте в квадратных скобках свой вопрос. Например:



И будут отобраны товары с ценой не выше заданной.

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

>= [дата начала периода] And <= [Дата конца периода]

В этом случае СУБД Microsoft Access выберет все записи, приходящиеся на интервал времени между этими датами.



Лекция 2 по БД ИДО

5000668744616280.html
5000710150700313.html
5000828404723820.html
5000868604154961.html
5000922686786150.html