Материал: 5685

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

16

3. Запросы на выборку к таблицам БД

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

простые запросы на выборку;

запросы с вычисляемыми полями;

запросы с групповыми операциями (запросы с итогами);

перекрёстные запросы.

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

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

Sum – сумма значений группы;

Avg – среднее значение для группы;

Max, Min – максимальное или минимальное значение в группе;

Count – количество непустых значений в группе;

StDev – среднеквадратичное отклонение в группе;

Var – дисперсия значений поля в группе;

First, Last – значение поля из первой и последней записи в группе. Перекрёстный запрос отличается от запроса с групповыми операциями

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

По способу создание запросы можно разделить на QBE-запросы (Query by Example – запросы по образцу) и SQL-запросы. Первые строятся с помощью конструктора запросов, вторые с помощью операторов и функций языка SQL (Structured Query Language – язык структурированных запросов). Дополнительным средством создания запросов в MS Access является мастер запросов. Запросы можно создавать к таблицам, к другим запросам на выборку, одновременно к таблицам и запросам.

Результатом выполнения запроса на выборку является новая виртуальная (временная) таблица, не сохраняемая в базе данных. В запросе хранится структура запроса: таблицы, список полей, условия отбора записей и т.д., то есть фактически инструкция по поиску и отбору записей.

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

определить, в какой таблице (или таблицах) содержатся искомые данные;

определить, по каким полям, каких таблиц будет происходить отбор данных, сформулировать критерии отбора;

17

запустить конструктор запросов, добавить выбранные таблицы;

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

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

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

сохранить запрос под выбранным именем и запустить его.

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

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

определить вид групповой операции и поле, к которому она будет применена.

Операторы, используемые для создания условий отбора записей в запросах, и примеры условий отбора представлены в таблице 2.

Таблица 2 – Условия отбора записей

Оператор

Пример

 

“Пылесос” (знак = можно не указывать)

 

<>”Иванов”

 

“директор” Or “бухгалтер” Or “менеджер” Or “сторож”

>

450

<

>= 1200

>=

<> 420

<=

>100 And <200

<>

<=#01.12.2010#

And

>#01.07.2010#

Or

>=#01.02.2011# And <#01.03.2011#

 

#12.10.2010# Or #12.11.2010#

 

<>ложь

 

Is Null – незаполненные ячейки

Between

 

проверка интервала для

Between 375 And 750

числового, денежного

Between #01.02.2011# And #01.03.2011#

значения или даты

 

In

In (258;32;16)

проверка на равенство

In (“Иванов”;”Петров”;”Сидоров”;”Степанов”)

любому значению из

In (#12.06.2010#;#12.07.2010#;#12.08.2010#;#12.09.2010#)

списка

 

 

Like “A*”

Like

Like “A*ов”

Like “*телевизор*”

разрешает использо-

Like “*ов”

вать образцы и симво-

Like “??????ов”

лы шаблона:

Like "[ИПС]*" (текстовое значение начинается с любого из

* – любое количество

символов;

указанных символов)

? – один любой символ;

Like "[!ИПС]*" (текстовое значение не начинается с любого из

# – одна любая цифра

указанных символов)

 

Like "[И-С]*" (текстовое значение начинается с букв от И до С)

18

Практическое задание 3. Создание запросов на выборку к таблицам базы данных

Запустите MS Access 2007 и откройте базу данных по учёту торговли, созданную на предыдущем занятии. Создайте запросы к таблицам базы данных, позволяющие получить заданную информацию. Таблицы БД, включаемые в запрос, и критерии отбора записей определяйте самостоятельно.

Простые однотабличные запросы

1.Получите список товаров, которых нет в наличии.

2.Определите, какие товары имеют стоимость больше Y рублей (стоимость Y задайте самостоятельно).

3.Используя сортировку, определите, какой товар имеет наибольшую стоимость.

4.Получите список поставок в хронологическом порядке с указанием кода товара и номера склада.

5.Получите список поставщиков одного выбранного Вами региона с указанием адреса и телефона.

6.Определите номера телефонов поставщиков Х и Y (наименования поставщиков задайте самостоятельно)

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

8.Получите список поставок, выполненных в январе, марте и мае текущего года.

9.Выясните, делал ли поставки в первом квартале текущего года поставщик №… (номер поставщика задайте самостоятельно).

10.Выясните, поступал ли товар X на склад №… в феврале текущего года (код товара X и номер склада задайте самостоятельно).

Пример: Получить список товаров, которых нет в наличии.

Запрос однотабличный, все необходимые поля находятся в таблице Товар.

Выполняем команду вкладка Создание → Конструктор запросов. В

появившемся окне Добавление таблиц выбираем таблицу Товар и добавляем её в запрос (рисунок 10).

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

19

строк Имя таблицы и Поле таблицы конструктора. Созданный запрос сохраняем и запускаем.

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

Рисунок 10 – Добавление таблицы в Конструктор запросов

Рисунок 11 – Простой однотабличный запрос на выборку

Простые многотабличные запросы

1.Определите адреса и телефоны поставщиков, выполнивших поставки в течение одного (любого) месяца.

2.Получите список товаров поставленных поставщиками X, Y, Z в феврале и марте (наименования поставщиков задайте самостоятельно).

3.Определите адреса и номера телефонов контактных лиц поставщиков X, Y, Z (наименования поставщиков задайте самостоятельно).

4.Склады Б и В попали в зону стихийного бедствия. Какие товары пострадали?

20

5.Получите список товаров поставленных во втором квартале текущего года. Список должен содержать дату поставки, наименование поставщика, наименование товара, его код и цену.

6.Выясните, поставлял ли поставщик Х товар Y на склад №… в апреле – мае текущего года (наименования поставщика и товара, а также номер склада задайте самостоятельно).

7.Вы хотите приобрести товар X. К каким контактным лицам следует обратиться?

8.В данный момент некоторые товары отсутствуют. К каким поставщикам и контактным лицам поставщиков следует обратиться?

9.Получите список товаров поставки, которых не совершались (если будет получена пустая таблица – таких товаров нет).

10.Определите, есть ли поставщики, которые не совершали поставок.

Пример: Определить адреса и телефоны поставщиков, выполнивших поставки в феврале месяце.

Все необходимые поля находятся в таблицах Поставщики и Поставки. Запускаем Конструктор запросов, добавляем в запрос указанные таблицы. В схеме данных запроса проверяем наличие связей между таблицами. В таблице конструктора указываем поля Наименование, Адрес, Телефон из таблицы Поставщики (в них находятся необходимые данные) и поле

Дата_поставки из таблицы Поставки, оно необходимо для задания условия отбора записей. Условие отбора по дате – >=#01.02.2011# And <#01.03.2011#. Заполненный конструктор представлен на рисунке 12.

Созданный запрос сохраняем и запускаем его на выполнение.

Рисунок 12 – Простой многотабличный запрос на выборку

Источник: https://studfile.net/preview/16711345/