Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MetUkazZaprosy.doc
Скачиваний:
3
Добавлен:
15.08.2019
Размер:
524.8 Кб
Скачать

ИжГТУ

Кафедра ВТ

Создание запросов в реляционных базахданных

средствамиАссеыы

Методическое пособие для выполнения

лабораторных работ

по дисциплине

БАЗА ДАННЫХ

Ижевск, 2002

ЧТО ЭТО ТАКОЕ - ЗАПРОС?

Запросы используются тогда, когда вас начинают донимать мысли типа «Мне необходимо выяснить...» или когда вы задаетесь вопросами Кто, Что, Когда, Где и Как. «Кто должен мне деньги?» «Какой номер телефона у Ивана?» «Где моя кассета со "Звездными войнами?"» «Сколько я еще должен уплатить налогов?» Запрос покажет вам только те поля и записи, которые вас интересуют. А еще с помощью запросов можно выполнить такие действия, как вычисления по значениям полей, групповые вычисления, объединение полей из нескольких таблиц или запросов.

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

Быстрое построение запросов с помощью мастера простой запрос

Мастер Простой запрос (Simple Query Wizard) дает возможность создавать запросы и не забивать себе голову размышлениями о том, как они работают. Он может пригодиться даже для создания относительно сложных запросов.

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

Табл. Клиенты.

Табл. Сведение заказов.

Для создания запроса выберите вкладку Запросы окна базы данных, затем щелкните на кнопке

Создать, и вы увидите следующее окно:

Рис 1.

Кроме возможности работать непосредственно в конструкторе запросов (он позволяет создавать запросы вручную) или с мастером простых запросов, можно воспользоваться еще тремя мастерами. Они показаны в табл.1

Мастер

Назначение

Перекрестный запрос (Crosstab Query Wizard)

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

Повторяющиеся запи­си (Find Duplicates Query Wizard)

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

Записи без подчинен­ных (Find Unmatched Query Wizard)

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

Табл.1

Для создания нового запроса выберите пункт Простой запрос и щелкните на

кнопке ОК :

. Здесь из таблиц выбираются поля;. Для анализа заказов клиентов выберите таблицу Клиенты в

списке Таблицы/Запросы (Tables/Queries), a затем двойным щелчком поместите в запрос поля КодКлиента и ИмяКомпании. Выберите таблицу СведенияЗаказов и добавьте поле Количество. Покончив с полями, щелкните на кнопке Далее, Access задаст вопрос о том, как представлять записи (рис. 2).

Если вы выберете просмотр всех записей, то в результате получите список всех заказанных изделий. Но нас-то интересует не подробная информация о заказах, а данные по клиентам, поэтому щелкните мышью на кнопке Итоговый (Summary), затем на кнопке Итоги (Summary Options), чтобы выбрать способ обработки данных.

Рис 2.

В следующем окне диалога вы увидите список полей, содержащих числовые значения или денежную единицу — в данном случае это только поле Количество — и для каждого из них параметры Sum, Avg, Min и Мах (сумма, среднее, минимальное, максимальное значения). Для вычисления количества заказанных изделий выберите Sum, для вычисления среднего числа изделий, приходящихся на заказ, выберите Avg.

Для вычисления общего число записей выберите поле Подсчет записей СведенияЗаказов (Count Records In), щелкните но кнопке ОК и вернитесь в окно мастера. Щелкните на кнопке Далее. В последнем окне мастер спрашивает имя запроса и предлагает либо вывести готовые результаты, либо переключиться в режим конструктора запросов. Результаты запроса, созданного в нашем примере, приведены на рис. 3. В полученной таблице каждая строка представляет одного клиента и включает в себя число заказанных изделий, среднее число изделий, приходящихся но заказ, и число заказов по всем накладным.

Рис.3

ВЫПОЛНЕНИЕ ЗАПРОСА

Cохраненный запрос можно открыть в любой момент. Открытие запроса означает его запуск на выполнение и вывод результатов на экран.

1.Выберите страницу Запросы окна базы данных.

2.Сделайте двойной щелчок мышью на имени запроса.

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

у моря и собираетесь совместить приятное с полезным( хотите оформить расходы на путешествие

как расходы на деловую поездку).Вам нужен список не всех клиентов, а только тех, кто находится в Сочи, Одессе, Ялте или там, куда вы планируете поехать.

Здесь придется забыть о мастере и воспользоваться конструктором запросов: выбрав в окне базы данных корешок Запросы, щелкните на кнопке Создать (New), выберите Конструктор (Design View) и щелкните но кнопке ОК. Access выведет окно конструктора запросов с открытым окном диалога

Добавление таблицы

Рис.4

Выберите таблицы для использования в запросе. Можно выбрать или одну, или несколько связанных таблиц. Наш пример основан на таблице Клиенты, поэтому находим ее в списке, нажимаем кнопку Добавить (Add) (или дважды щелкаем на имени таблицы) и закрываем окно диалога. На экране появится окно конструктора запросов с выбранной таблицей.

ВЫБОР ПОЛЕЙ, ВЫВОДИМЫХ В ЗАПРОСЕ.

Выбрав таблицы, необходимо выбрать поля для запроса. Чтобы добавить поле, дважды щелкните на нем мышью или перетащите его впервый свободный столбец в строке полей. (Ширину столбцов можно увеличить, чтобы название поля помещалось полностью.) В нашем примере задача состоит в отборе клиентов, живущих в определенном городе, поэтому дважды щелкаем на поле Название (ИмяКомпании )таблицы Клиенты и точно так же на полях Фамилия, Город, РабочийТелефон(в перечисленном порядке). Обратите внимание, что в строке Таблицы (Tables) отображается название таблицы, из которой берется поле. При использовании полей из связанных таблиц это весьма полезно.

Сортировка

Для удобства работы с данными их надо отсортировать. Например, для облегчения поиска конкретного клиента щелкните мышью в строке Сортировка (Sort), раскройте список и выберите пункт в порядке возрастания (Ascending). Другими возможными вариантами являются в порядке убывания (Descending) и (отсутствует) ((not sorted)), то есть отсутствие сортировки (здесь скобки придуманы Access). Данные в выборке будут сортироваться по именам клиентов. Но если вы желаете увидеть записи в исходном порядке, то можно отказаться от сортировки или условий отбора записей.

Условия отбора записей

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

  • Введите конкретное значение, с которым поле будет сравниваться на равенство. Для сравнения используйте операторы ( <, >, <=, >=, <>).

  • В составных условиях используйте операторы AND и OR («и» и «или»).

  • Для выявления пустых полей используйте оператор Is Null, для выявления непустых — Is Not Null

  • Чтобы указать, что значение поля должно включаться некий набор значений, используйте

оператор IN

    • Для проверки вхождения в интервал значений используйте конструкцию BETWEEN ... AND.

    • Условия для различных полей обрабатываются совместнс по AND (логическое И).

    • Для задания совместной обработки условий (по одному или нескольким полям) по Or (логическое Или) располагайте их в различных строках.

Из окна конструктора можно выполнить запрос с помощью кнопок Запуск (Run Query) или Представление запроса (Оиег View). Наш пример выводит список записей, состоящих из имени города и телефонного номера клиентов в Москве. Для возвращения в конструктор запросов еще раз нажмите кнопку Представление запроса. Используйте ее всякий раз, когда потребуется переключиться из режима конструктора запросов в режим просмотра таблицы. (Для изменения существующего запроса выберите его на вкладке Запросы окна базы данных и щелкните на кнопке Конструктор.)

Теперь рассмотрим строку Вывод на экран . При установленном флажке в соответствующем столбце поле будет присутствовать в выборке, создаваемой запросом.Так как все отобранные клиенты живут в Москве

Нет никакого смысла помещать набор данных название города , но при этом удалять его нельзя , так как

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

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

При открытие запроса Access тем не менее удалит все ссылки на поля, у которых сброшен флажок

Вывод на экран и которые не используются для сортировки, задания условия или параметра.

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

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

В меню Файл команду сохранить ,введите имя Клиенты в Москве и щелкните на кнопке ОК.

Использованиие в запросе всех полей

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

Можно также добавить все поля переносом звездочки, стоящей на первой позиции в списке полей таблицы. В этом случае в списке появиться только имя таблицы со звездочкой, например Клиенты*, причем займет оно лишь один столбец.

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

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

Рис.5

ДОБАВЛЕНИЕ В ЗАПРОС ТАБЛИЦ

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

Если вы уже закрыли запрос, выберите его на вкладке Запросы и щелкните на кнопке Конструктор. Добавьте таблицу Заказы. Если между таблицами установлены связи, то Access покажет линии между связанными полями. Например, если в запрос Клиенты в Москве добавить таблицу Заказы, то появита линия, указывающая на отношение типа один-ко-многим.

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

ДОБАЛЕНИЕ ТАБЛИЦЫ: шаг за шагом

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]