ГЛАВА 9
Запросы к базе данных
Одним из основных назначений разработанного
приложения является быстрый поиск информации в базе данных и получение ответов
на разнообразные вопросы. Для этих целей в Visual FoxPro используются средства,
называемые запросами.
Например, вам необходимо выбрать
из таблиц информацию о клиентах, проживающих в Москве и Московской области,
или сформировать список клиентов, купивших в последний месяц товаров на сумму
свыше 5000 рублей, и упорядочить их в алфавитном порядке по полю, содержащему
фамилии клиентов. Для решения таких задач предназначен конструктор запросов
и команда SELECT языка Visual FoxPro.
С помощью конструктора запросов
Visual FoxPro вы можете формировать различной сложности критерии для выбора
записей из одной или нескольких таблиц, указывая при этом, какие поля должны
быть отображены в запросе. Над полями, выбираемыми из таблиц с помощью запросов,
можно выполнять различные вычисления.
Рис. 9.1. Ввод условия
выборки в мастере запросов
Результатом запроса является таблица,
которую вы можете сохранить в массиве, в создаваемой новой таблице, отобразить
на экране в режиме Browse (Просмотр) или вывести в виде отчета.
Для создания запросов вы можете
использовать мастер запросов, который последовательно запрашивает наименования
таблиц, используемых в запросе, перечень полей таблиц, критерий упорядочения
и условия фильтрации данных. На рис. 9.1 приведено диалоговое окно мастера,
позволяющее сформировать условия фильтрации выбираемых из таблицы данных. Мы
не будем рассматривать создание запросов с помощью мастера, т. к. конструктор
запросов достаточно прост и работа в нем у вас не вызовет затруднений.
Конструктор
запросов
Для создания запроса в окне конструктора
запросов выполните следующие действия:
-
На вкладке Data (Данные) конструктора
проекта выберите группу Queries (Запросы).
-
Нажмите кнопку New (Новый).
-
В открывшемся диалоговом окне
New Query (Новый запрос) нажмите кнопку New Query (Новый запрос). Открывается
диалоговое окно выбора таблиц Add Table or View (Добавить таблицу или представление
данных).
-
В этом диалоговом окне выберите
таблицы, данные из которых хотите использовать в запросе, и с помощью кнопки
Add (Добавить) перенесите их в окно конструктора запросов.
-
Завершив выбор таблиц, нажмите
кнопку Close (Закрыть).
На экране появляется окно конструктора
запросов (рис. 9.2), которое содержит названия выбранных таблиц, а в основном
меню появляется пункт Query (Запрос). Можно приступать к формированию условий
запроса.
Совет
Для открытия ранее созданного
запроса в окне конструктора запросов на вкладке Data (Данные) окна проекта
в группе Queries (Запросы) найдите модифицируемый запрос, установите на него
курсор и нажмите кнопку Modify (Модифицировать).
Далее, открывая в конструкторе запросов
необходимые вкладки, вы выполняете следующие действия:
-
выбираете поля результирующей
таблицы запроса;
-
формируете вычисляемые поля;
-
указываете критерии для выборки,
группировки и упорядочения данных;
-
задаете, куда выводить результат
выборки.
В верхней части окна конструктора
запросов расположена панель, на которой отображаются используемые в запросе
таблицы. Ниже находятся вкладки, предназначенные для выбора полей запроса и
формирования условий выборки. Назначение этих вкладок приведено в табл. 9.1.
Рис. 9.2. Окно конструктора
запросов с выбранной таблицей клиентов
Таблица 9.1. Назначение
вкладок окна конструктора запросов
|
Вкладка
|
Назначение
|
|
Fields (Поля)
|
Позволяет указать
поля исходных таблиц, выбираемые в результирующий запрос
|
|
Join (Объединение)
|
Позволяет задать
условия объединения таблиц
|
|
Filter (Фильтр)
|
Позволяет определить
фильтры, накладываемые для выбора записей
|
|
Order By (Упорядочение)
|
Позволяет задать
критерии упорядочения данных
|
|
Group By (Группировка)
|
Позволяет задать
условия группировки данных
|
|
Miscellaneous
(Разное)
|
Позволяет задать
дополнительные условия, такие как признак выборки повторяющихся значений,
количество или процент выбора данных
|
|