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

Лабораторная работа № 3 «Запросы»

Задание

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

  1. Названия, адреса и руководители всех поставщиков, отсортированные в алфавитном порядке названий.

(Однотабличный запрос на выборку с использованием сортировки)

  1. Названия и вес деталей для деталей с весом > 100 (значение может быть другим в зависимости от ваших данных) в порядке убывания веса.

(Однотабличный запрос на выборку с использованием сортировки и условия)

  1. Дату поставки, количество деталей, цену одной детали и стоимость всей партии в хронологическом порядке.

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

  1. Список всех поставок (дата, название поставщика и название детали) с указанием руководителя фирмы-поставщика и материала, из которого сделана деталь, в хронологическом порядке.

(Многотабличный запрос на выборку с сортировкой)

  1. Для каждого поставщика количество выполненных им поставок и количество поставленных при этом деталей. Отсортируйте по названиям поставщиков.

(Многотабличный запрос с использованием группировки и сортировки)

  1. Для каждой детали посчитайте количество поставок, количество поставленных при этом деталей, стоимость деталей и вес. Отсортируйте по наименованию детали.

(Многотабличный запрос на выборку с использованием группировки, сортировки и вычисляемых полей)

  1. Вся информация о поставках определенной детали в хронологическом порядке.

(Многотабличный запрос на выборку с параметром и сортировкой)

  1. Вся информация о поставках за определенный период (в интервале между заданными датами) в хронологическом порядке.

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

Методические указания

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

В этих случаях следует воспользоваться таким инструментом MS Access как Запрос, для создания которого необходимо на вкладке Создание в группе Другие щелкнуть кнопку Конструктор Запросов. Так же как и таблицы, будем создавать запросы с помощью Конструктора запросов.

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

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

После выбора таблиц и задания типа запроса следует добавить в запрос нужные поля. Сделать это можно двойным щелчком на соответствующем поле таблицы из верхней части окна. Если в верхней части окна нет необходимой таблицы, ее можно добавить, используя контекстное меню, вызываемое по щелчку правой кнопкой мыши. В бланке запроса (в нижней части окна) можно задать сортировку по какому-либо полю (или нескольким полям); определить, нужно или нет выводить данное поле на экран; задать условие отбора записей. Для записи условия используется знак операции (=, >, >=, <> и т.д.) и значение (числа пишутся обычным образом, текстовые строки – в кавычках).

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

Выполнить запрос можно нажатием кнопки Выполнить группы Результаты или переключив запрос в режим таблицы.

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

Иногда в запросе требуется некая суммарная информация по группам записей. Чтобы сгруппировать записи по какому-то полю-признаку, используется кнопка Итоги из группы Показать или скрыть окна Конструктора запросов. При этом в бланке запроса появится новая строка Групповая операция. Для поля группировки следует задать в этой строке значение Группировка; а для полей, используемых для вычислений – выбрать одну из предлагаемых в списке функций. Более подробную информацию можно посмотреть в Справке (Статистические функции SQL).

Подсчитаем, например, сколько было поставок в каждый день и сколько было при этом поставлено деталей. Для такого запроса понадобится Таблица поставок. Записи из этой таблицы нужно сгруппировать по датам поставок. Следовательно, это запрос с группировкой, а полем группировки будет поле Даты поставки. Чтобы определить количество всех поставленных деталей за день, надо просуммировать поле Количество в записях, относящихся к одному дню. Для этого используется агрегатная (итоговая, статистическая) функция Sum. А количество поставок за определенный день равняется количеству записей в таблице с датой поставки в этот день. Для подсчета количества записей используется функция Count. (Поле для этой функции можно взять любое, например, Количество деталей). Зададим заголовки для двух вычисляемых полей. Для этого в Конструкторе запроса в вычисляемых колонках добавим нужные заголовки в строку Поле и отделим их двоеточием от имеющегося там уже текста. На следующих двух рисунках приведен вид Конструктора этого запроса и результат запроса в форме таблицы.

Частным случаем запроса с группировкой является перекрестный запрос. Он используется, когда записи группируются по двум полям. При этом результатом запроса будет таблица, в которой значения одного поля группировки будут заголовками строк (как и в случае групповых операций), а значения второго поля группировки – заголовками столбцов. Чтобы создать перекрестный запрос, следует установить тип запроса Перекрестный. В бланке запроса появится новая строка Перекрестная таблица. В этой строке необходимо указать, значения какого поля будут заголовками строк, какого поля – заголовками столбцов, и какого – значениями на пересечении строк и столбцов. Поля-заголовки строк и столбцов в строке Групповая операция будут иметь значения Группировка, а для поля значений в строке Групповая операция требуется выбрать необходимую статистическую функцию.

Чтобы пользователь мог сам участвовать в формировании запроса, следует дать ему возможность задать Условие отбора в запросе. Такой запрос называется запросом с параметром. Вместо жестко заданного условия отбора запрос с параметром перед выполнением требует пользователя ввести параметр-ограничитель и затем выводит только те записи, которые удовлетворяют этому ограничению. Для создания запроса с параметром в строке Условие отбора бланка запроса следует ввести в квадратных скобках текст-приглашение для ввода (например, «Введите фамилию: » или «Введите начальную дату: » и др.). Квадратные скобки с заключенными внутри них параметрами могут использоваться и в сложных выражениях при записи условия отбора записей.

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

> =[Нижняя граница веса: ] And <=[Верхняя граница веса: ]

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

В запросе на создание таблицы требуется указать тип запроса Создание таблицы и задать имя для создаваемой таблицы. В остальном запрос на создание таблицы аналогичен запросу на выборку.

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

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

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