Иллюстрированный самоучитель по Visual FoxPro 8

Запросы к базе данных

  • Запросы к базе данных

    Одним из основных назначений разработанного приложения является быстрый поиск информации в базе данных и получение ответов на разнообразные вопросы. Для этих целей в Visual FoxPro используются средства, называемые запросами.
  • Конструктор запросов

    Для создания запроса в окне конструктора запросов выполните следующие действия: | На вкладке Data (Данные) конструктора проекта выберите группу Queries (Запросы). | Нажмите кнопку New (Новый). | В открывшемся диалоговом окне New Query (Новый запрос) нажмите кнопку New Query (Новый запрос).
  • Команды, используемые при формировании запросов

    Для работы в окне конструктора запроса можно использовать команды меню Query и панель инструментов Query Designer (Конструктор запроса). Назначение команд и кнопок на панели инструментов описано в табл. 9.2. | Таблица 9.2. Назначение команд меню Query и кнопок панели инструментов Query Designer.
  • Сохранение запроса. Запуск запроса на выполнение.

    Сформировав в окне конструктора запросов условия выборки, вы можете их сохранить в файле с расширением QPR, что позволит сэкономить время при последующих запусках запроса. | Для сохранения условий выборки в меню File (Файл) выберите команду Save as (Сохранить как).
  • Формирование списка полей результирующей таблицы запроса

    В результирующей таблице запроса поля формируются на основе полей исходных таблиц и вычисляемых полей. Для задания списка полей результирующей таблицы запроса предназначена вкладка Fields (Поля) конструктора запросов (рис. 9.3).
  • Вычисляемые поля запроса

    Visual FoxPro позволяет не только включать в результирующую таблицу запроса информацию из исходных таблиц, но и производить вычисления над ними, предоставляя, таким образом, возможность получить данные, отсутствующие в исходной таблице.
  • Вкладка Order By конструктора запросов

    Вкладка Order By (Упорядочение) конструктора запросов (рис. 9.6) позволяет указать критерий упорядочения данных в результирующей таблице, используя одно или несколько полей исходной таблицы, перенесенных из списка Selected fields (Выбранные поля) в список Ordering criteria (Критерии упорядочения).
  • Упорядочение по нескольким полям

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

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

    Флажок Not (He), расположенный на вкладке Filter (Фильтр) окна конструктора запросов, позволяет выбрать из таблицы записи, не удовлетворяющие заданному условию. Например, в предыдущем примере мы осуществляли выбор клиентов, проживающих в Москве.
  • Выбор похожих значений

    Список вариантов сравнения Criteria (Критерий) вкладки Filter (Фильтр) содержит значения, позволяющие задавать различные критерии выбираемых в результирующую таблицу записей. При работе с большими таблицами время от времени возникает необходимость найти записи, точное написание которых вы не знаете. Например, вы не знаете, верхний или нижний регистр был использован при вводе записей.
  • Выбор записей, находящихся в заданном диапазоне значений

    Для выбора записей, лежащих в заданном диапазоне значений, используются операторы > (больше), < (меньше) и Between (Между) из списка Criteria (Критерий) вкладки Filter (Фильтр). Операторы > (больше) и < (меньше) используются в том случае, если задана только нижняя или верхняя граница диапазона, a Between (Между) – когда известны обе границы.
  • Формирование списка условий

    Visual FoxPro позволяет при создании запросе" формировать несколько условий. В том случае, если все задаваемые условия накладываются на одно поле, их можно разместить в одной строке. В противном случае условия размещаются в разных строках вкладки Filter (Фильтр). Рассмотрим следующий пример.
  • Многотабличные запросы

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

    Рассмотрим пример выборки товаров, приобретенных клиентами. Для решения этой Задачи нам Потребуются таблицы Customer, Ordsalem, Ordsaled и Goods. Таблица customer содержит информацию о клиентах, таблица ordsalem – сведения о заказе на товары, таблица ordsaled – сведения о товарах, входящих в заказ (количество купленных товаров и цена товара), а таблица Goods – наименования всех товаров.
  • Группировка полей запроса

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

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

    В данном примере создадим запрос для таблиц ordsaiem и ordsaied об итоговой сумме по каждому заказу. Для этого: | Откройте окно запроса для таблиц Ordsaiem и Ordsaied. | На вкладке Fields (Поля) перенесите в список Selected fields (Выбранные поля) поле icdorder, содержащее код заказа.
  • Изменение наименований полей в запросе

    Visual FoxPro по умолчанию присваивает полям результирующей таблицы запроса наименования, которые имеют поля исходной таблицы. Вычисляемым и итоговым полям присваиваются наименования в соответствии с соглашением, принятым в Visual FoxPro.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.