Лекция по теме Запросы в MS Access

  • doc
  • 26.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 055. Лекция по теме Запросы в MS Access.doc

§1. Запросы

Ну и запросы у вас - сказала база данных и повисла.

Запрос – это требование на выборку данных, либо действия с ними.

В базе данных Access могут быть созданы следующие типы запросов:

  1. на выборку;
  2. на обновление;
  3. на удаление;
  4. на создание таблицы;
  5. перекрестный;
  6. на объединение.

1.1. Запросы на выборку

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

Пример: Создадим в БД запрос «Города издания книг», который будет выводить список книг с городами, в которых они издавались. Для этого нужно добавить в качестве источников данных запроса таблицы «Книги» (из которой берутся название книги и ее автор) и «Издательства» (содержащую город, в котором работает издательство). При этом связь, существовавшая между таблицами, продолжает работать в запросе. Щелчком по полю нужной таблицы добавляем его в запрос, (источник данных отображается в строке «Имя таблицы»).

 

Рис.1.              Создание запроса в конструкторе

Если в поле не вводили ничего, то его значением принято считать Null.

 

Упражнение: Добавим в БД (таблица Книги) поле Стоимость, в которое будет вписана цена, по которой приобретена книга. Теперь попытаемся сделать запрос, отображающий 3 самые дорогие книги. Для этого в режиме конструктора  выберем в качестве источника данных таблицу «Книги» и выведем список, содержащий названия книг, авторов (поскольку разные книги разных авторов могут иметь общее название – например,  «Избранное» Пушкина и «Избранное» Жуковского). Как выбрать самые дорогие книги? Можно отсортировать список по цене (лучше в порядке убывания, чтобы требуемые книги оказались в начале списка). Оставить лишь необходимое количество книг позволяет поле со списком в верхней части окна программы. Впишем туда 3 - .

1.1.1. Пользовательские поля в запросе

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

Рис.2.              Создание расчетных полей в конструкторе запросов

1.1.2. Запросы с параметрами[1]

Параметр запроса – выражение, которое пользователь вводит перед каждым запуском запроса

 

Замечание: Чтобы использовать параметр в качестве условия нужно брать его в квадратные скобки […].

Пример: «Писатель» - сравнить со словом Писатель

            [Писатель] – сравнить с параметром Писатель

 

Если мы при помощи контекстного меню, команда «Параметры»  создадим новый параметр (или просто впишем выражение, не являющееся именем какого-либо поля в запросе или его источнике данных), то пользователь должен будет вводить его значение при каждом запуске запроса.

Пример: В БД «Домашняя библиотека» создадим запрос, который выводит список книг определенного писателя. Самым простым способом будет вписать его фамилию в поле «Условие отбора» для поля «Фамилия». Например, ”Пушкин” (текстовое условие обязательно заключено в английские верхние кавычки “….”). Но этот путь требует знания конструктора запросов, т. е. пользователь, несведущий в Access, не может работать с нашей БД. К тому же при каждом открытии формы или отчета, использующих этот запрос, придется предварительно изменять его.

Альтернативная возможность состоит в применении параметра Писатель и сравнении записей с его значением. Значение вводится в окно такого вида:

                       

1.1.3. Группировка данных в запросах

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

Замечание:  Использование кнопки Σ позволяет применить групповые операции к записям в запросе (например, группировку или Count – подсчет количества записей, Sum – сумму (только для чисел))

 

Создадим в БД «Домашняя библиотека», запрос, в котором выводятся все книги, которые у нас не в единственном числе. В этом запросе «Повторяющиеся книги» отобразим основные сведения о книге – ее название и автора. Затем в конструкторе запросов нажмем на панели инструментов кнопку Σ, после чего к данным полям Название и Автор будет применена группировка. Теперь каждая книга отобразится лишь один раз, (все записи запроса становятся уникальными). Попытаемся сосчитать, сколько раз книга встречается в таблице. Для этого еще раз используем поле Название, но вместо группировки применим другую операцию – Count. Она производит подсчет указанных записей в таблице. Чтобы остались лишь книги, которых у нас более одной, впишем это требование в поле Условие отбора.

В режиме конструктора это выглядит примерно так

 

1.1.4. Запросы по несвязанным данным

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

 

Пример: Создадим новую БД Access «Тестовая», которая содержит две простых таблицы. Одна из них – «Должности» (содержит лишь одно поле должность, с несколькими записями, например, «Директор», «Менеджер», «Начальник отдела», «Секретарь»). Вторая – «Люди» (содержит ряд сведений о людях: налоговый код - ИНН (индексное поле текстового типа), Фамилия и Имя). Теперь в конструкторе запросов выберем из таблиц поля Должность и Фамилия. При этом мы увидим полный список вариантов какую должность может занимать каждый человек,  зарегистрированный в нашей базе.

Т. е.  две несвязанные таблицы «Должности» и «Люди» при вышеописанной выборке

                                   

1.2. Перекрестные запросы[2]

Перекрестный запрос преобразует данные в виде записей в сводное представление.

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

Пример

Для создания перекрестного запроса нужно выбрать в режиме конструктора:

меню «Запрос» → команда «Перекрестный» (или через контекстное меню → команда «Тип запроса»)

Пример: Этот запрос выведет список книг в таблицу, где код автора будет заголовком строки, а годы издания книг – заголовками столбцов.

1.3. Запросы на удаление  

Запрос на удаление удаляет группу записей из одной или нескольких таблиц.

Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены или на которые нет заказов. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.

 

 

Пример: Данный запрос удалит все книги Маяковского из таблицы книги в БД «Домашняя библиотека»

1.4. Запросы на обновление 

Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц

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

Например, этот запрос на 5 процентов увеличивает стоимость всех книг издательства «Питер».

1.5. Запросы на добавление 

Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц.

Например, попытаемся добавить в таблицу «Книги» из БД «Домашняя библиотека»

1.6. Запросы на создание таблицы

Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц.

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

Пример: Этот запрос создает таблицу «Новые книги» из таблицы «Книги», выбирая оттуда ряд полей, для которых Год издания позже 2000-го

№1. Число и его цифры

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


Скачано с www.znanio.ru



[1] Параметры могут быть применены к любым типам запросов.

[2] Групповые операции применяются к перекрестным запросам автоматически.