Работа с запросами.


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

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

В общем случае результирующая таблица может не соответствовать ни одной из базовых таблиц БД. Ее поля могут представлять набор из полей разных таблиц, а ее записи могут содержать отфильтрованные и отсортированные записи таблиц, на основе которых формировался запрос. Лишь в тех случаях, когда испол­нитель не находит нужных данных в результирующей таблице, возникает необходи­мость готовить новый запрос - это задача разработчика базы.

В учебных целях запросы лучше готовить вручную, с помощью Конструктора. Как и в случае с таблицами, для этого есть специальный значок в окне БД. Он называется Создание запроса в режиме конструктора и открывает специальный бланк, называемый бланком запроса по образцу. Бланк запроса по образцу представлен на рисунке 4.5.

 

 

Рисунок 4.5. Бланк запроса по образцу

 

Бланк запроса состоит из двух областей. В верхней отображается структура таблиц, к которым запрос адресован, а нижняя область разбита на столбцы - по одному столбцу на каждое поле будущей результирующей таблицы. Формирование запроса по образцу происходит с помощью контекст­ного меню на верхней половине бланка. Первоначально открывают те таблицы, к которым обращен запрос. Затем в них щелкают двойными щелчками на названиях тех полей, которые должны войти в результирующую таблицу. При этом автоматически заполняются столбцы в нижней части бланка. Сформировав структуру запроса, его закрывают, дают ему имя и в дальнейшем запускают двойным щелчком на значке в окне БД. Порядок действий, рассмотренный выше, позволяет создать простейший запрос, называемый запросом на выборку. Данный вид запроса выбирает данные из полей таблиц, на основе которых он сформирован.

Упорядочение записей в результирующей таблице. Если необходимо, чтобы дан­ные, отобранные в результате работы запроса на выборку, были упорядочены по какому-либо полю, применяют сортировку. В нижней части бланка имеется спе­циальная строка «Сортировка». При щелчке на этой строке открывается кнопка раскрывающегося списка, в котором можно выбрать метод сортировки: по возрастанию или по убыванию. В результирующей таблице данные будут отсортированы по тому полю, для которого задан порядок сортировки. Возможна многоуровневая сортировка - сразу по нескольким полям. В этом случае данные сначала сортируются по тому полю, которое в бланке запроса по образцу находится левее, затем по следующему полю, для которого включена сортировка, и так далее слева направо.

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

Использование условия отбора. Дополнительным средством, обеспечивающим отбор данных по заданному критерию, является так называемое «Условие отбора». Соответствующая строка имеется в нижней части бланка запроса по образцу. Для каждого поля в этой строке можно задать индивидуальное условие. На рисунке 4.6 представлен пример, в котором мы хотим отобрать со склада наименования швейной продукции, имеющие размер больше 46, но при этом наличествующие на складе более 10 единиц.

 

 

 

 

Рисунок 4.6. Работа условия отбора

 

Другие виды запросов. Мы рассмотрели запросы на выборку. Это самые простые и, в то же время, наиболее распространенные виды запросов. Однако существуют и другие виды запросов, некоторые их которых выполняются на базе предвари­тельно созданного запроса на выборку. К ним относятся:

- запросы с параметром (критерий отбора может задать сам пользователь, введя нужный параметр при вызове запроса);

- итоговые запросы, назначение которых отдаленно напоминает итоговые функции
электронных таблиц (производят математические вычисления по заданному
полю и выдают результат). Команда «Вид» → «Групповые Операции» позволяет создавать итоговые вычисления. Название и функции «Групповых Операций» представлены в таблице 4.2;

- запросы на изменение - позволяют автоматизировать заполнение полей таблиц;

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

- специфические запросы SQL - запросы к серверу БД, написанные на языке запросов SQL.

 

Таблица 4.2. Название и функции «Групповых Операций»

Название Функции
Sum Сумма значений поля по всем записям.
Avg Среднее значение поля.
Min Минимальное значение.
Max Максимальное значение.
Count Количество записей, соответствующее поле которых не содержит величину Null.
StDev Стандартное отклонение величины поля от среднего.
Var Вариация значений поля.
Group By Поле, определяющее группу записей, по которой вычисляются статистические параметры.
Expression Вычисляемое поле, значение которого рассчитывается по сложной формуле.
Where Режим задания условий отбора для поля, по которому не выполняется группировка.