Печатать книгуПечатать книгу

§ 5. Формирование запросов на выборку данных

Сайт: Профильное обучение
Курс: Информационные технологии. 10 класс (Базовый уровень)
Книга: § 5. Формирование запросов на выборку данных
Напечатано:: Гость
Дата: Четверг, 2 Май 2024, 21:24

 

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

Запрос — объект БД, который используется для реализации эффективного поиска и обработки данных.

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

Самый распространенный вид запросов — запрос на выборку. Он предназначен для отбора данных из источника в соответствии с некоторым условием. Условие запроса — это выражение, которое СУБД сравнивает со значениями в полях запроса, чтобы определить, следует ли включать в результат записи, содержащие то или иное значение.

Запрос на выборку позволяет:

1. Просматривать значения только из полей, которые вас интересуют.
2. Просматривать записи, которые отвечают указанным вами условиям.
3. Использовать выражения в качестве полей.

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

Основные режимы работы с запросами в Access:

1. Режим таблицы. Отображает информацию запроса на выборку в режиме таблицы.

2. Конструктор. В этом режиме определяется структура запроса и условия выбора данных (см. Приложение к главе 1).

(Рассмотрите пример 5.1.)

Создать запрос можно с помощью Мастера запросов либо в Конструкторе (пример 5.2).

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

Основные этапы создания запроса на выборку:

1. Выбор инструмента создания запроса.
2. Определение вида запроса.
3. Выбор источника(ов) данных.
4. Добавление из источника(ов) данных полей, которые должен содержать запрос.
5. Определение условий, которые формируют набор записей в запросе.
6. Добавление группировки, сортировки и вычислений (может отсутствовать).

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

Примеры записи условий в запросах:

Условие

Действие в запросе

Поля с числовым типом данных

>0 And <8

Выбираются записи, у которых значение в этом поле больше 0 и меньше 8.

Not 0

Выбираются записи, у которых значение в этом поле не равно 0.

Поля с текстовым типом данных

"Орша"

Если значение в поле записи равно Орша, то запись включается в результат запроса.

"*к"

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

Правила записи условий для поля с типом данных Дата и время такие же, как для поля с числовым типом данных. После выполнения запроса в этом случае в условие будут добавлены знаки #.

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

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

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

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

Все запросы, которые рассмотрены в примерах 5.3 и 5.4 , содержат конкретные значения названий, имен, времени и т. д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его нужно будет открыть в конструкторе, изменить условие и выполнить. Чтобы не делать многократно этих операций, можно создать запрос с параметрами. При выполнении такого запроса выдается диалоговое окно Введите значение параметра, в котором пользователь может ввести конкретное значение, а затем получить нужный результат. Параметр запроса определяется в строке Условие отбора конструктора для столбца, содержащего запрашиваемые значения. Параметром является слово или фраза, заключенные в квадратные скобки. Параметр будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса (пример 5.5).

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

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

Наряду с запросами на выборку часто применяются запросы на действие. С помощью таких запросов можно обновлять значения полей записей, добавлять новые или удалять уже существующие записи. В СУБД Access такие запросы можно создать в режиме конструктора, воспользовавшись инструментами группы Тип запроса:

Пример 5.1. Режимы работы с запросами.

Режим SQL позволяет создавать и просматривать запросы с помощью инструкций языка SQL.

SQL (англ. structured query language — язык структурированных запросов). Применяется для создания, редактирования и управления данными в реляционной базе данных.

Пример 5.2. Группа инструментов Запросы вкладки Создание.

Пример 5.3. Создание запроса на выборку с помощью Мастера запросов.

1. Выбрать инструмент .

2. Выбрать вид запроса.

3. Выбрать источник данных.

4. Задать поле, содержащее повторяющееся значение.

5. Выбрать поля для отображения вместе с повторяющимися значениями.

6. Просмотреть и/или сохранить запрос.

Пример 5.4. Создание простых запросов на выборку с помощью Конструктора запросов.

1. Выбрать инструмент

2. Выбрать источник данных.

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

4. Записать условие формирования набора записей в запросе.

4.1. Выбор по полю с текстовым типом данных.

Результат:

      

Результат:

4.2. Выбор по полю с числовым типом данных.

Результат:

4.3. Использование составного условия.

Результат:

      

Результат:

5. Сохранить запросы.

Пример 5.5. Создание запроса с параметрами.

1. Открыть один из запросов, созданных в примере 5.4 в конструкторе.

2. Изменить условия отбора на:

3. Сохранить с новым именем и открыть в режиме таблицы.

4. В диалоговом окне набрать одно из названий кинотеатра.

5. Просмотреть запрос.

Пример 5.6. Создание итогового запроса.

Создать итоговый запрос, определяющий, сколько мальчиков и сколько девочек посещают факультатив по математике.

1. Источник данных — таблица «Учащиеся».

2. Создать запрос с помощью конструктора (добавить в запрос только поле «Пол»).

3. Сгруппировать данные по полю «Пол» (нажать кнопку   в группе Показать или скрыть).

4. Добавить вычисляемое поле (в строке нового поля Групповая операция в списке выбрать функцию Count).

5. Сохранить и просмотреть запрос.

       

Вопросы к параграфу

1. Для чего предназначены запросы?

2. Какие объекты баз данных могут быть источником данных для запросов?

3. Что представляет собой запрос на выборку?

4. Что такое условие запроса?

5. С помощью каких инструментов можно создавать запросы?

6. Можно ли добавлять группировку и сортировку записей в запрос?

7. Можно ли организовать вычисления в запросе?

Упражнения

 

 

1. Для таблицы «Резиденты ПВТ» базы данных «ПВТ.accdb» с помощью запросов на выборку измените порядок следования полей, сделайте невидимыми указанные поля, отсортируйте записи по предложенному критерию. Для этого выполните перечисленные действия:Для таблицы «Монеты» базы данных «Памятные монеты.accdb» создайте запросы для вывода на экран записей, отображающих информацию о монетах:

  1. Выберите Конструктор запросов.
  2. В диалоговом окне Добавление таблицы укажите на таблицу «Резиденты ПВТ» и нажмите кнопку , а затем кнопку .
  3. Выполните отбор полей. Для этого из списка полей таблицы «Резиденты ПВТ» двойным щелчком разместите поля таблицы (кроме поля «Логотип») на бланке запроса в строке Поле.
  4. Установите критерии отбора для вывода на экран полей: «Наименование», «Год основания», «Вид деятельности». Для этого в строке конструктора запросов Вывод на экран отключите флажки для полей: «Адрес», «Телефон».
  5. Перейдите в режим таблицы. Убедитесь, что видимыми остались только отобранные поля. Вернитесь в режим конструктора запросов.
  6. Переместите столбец «Вид деятельности» на второе место. Для этого выделите столбец «Вид деятельности» и перетащите его в нужное место.
  7. Сохраните запрос.

2.  Для таблицы «Монеты» базы данных «Памятные монеты.accdb» создайте запросы для вывода на экран записей, отображающих информацию о монетах:

  • изготовленных из золота;
  • золотых и медно-никелевых;
  • кроме тех, у которых в поле «Особенности» стоит прочерк;
  • дешевле 50 рублей;
  • массой 28,28 г или 33,63 г;
  • номиналом 20 и 50 рублей;
  • из золота и имеющих диаметр 22 мм.

3.  Для таблицы «Вершины» базы данных «Вершины мира.accdb» создайте запрос с параметром. После применения запроса на экран будут выведены сведения о вершинах определенной горной системы. Для этого:

  1. В конструкторе в строке Условие отбора в поле «Горная система» добавьте [Введите горную систему].
  2. Просмотрите запрос в режиме таблицы. При этом появится диалоговое окно. Введите значение параметра (например, «Гималаи»).

4. Для таблицы «Вершины» базы данных «Вершины мира.accdb» создайте итоговый запрос с группировкой по полю «Континент» и вычисляемым полем, определяющим высоту самой высокой вершины континента. Для этого:

  1. Создайте запрос с помощью конструктора. В запрос добавьте только поля «Континент» и «Высота, м».
  2. Сгруппируйте данные по полю «Континент».
  3. Добавить функцию Max для нахождения вершины максимальной высоты:

Должно получиться:

5. Для таблицы «Монеты» базы данных «Памятные монеты.accdb» создайте итоговые запросы, определяющие:

  1. Самую дешевую монету соответствующего номинала.
  2. Самую большую из монет соответствующего металла.
  3. Суммарную стоимость монет соответствующего металла.

6. Для таблицы «Товары» базы данных «Остатки товаров на складе.accdb» создайте запрос с вычисляемым полем «Стоимость». Стоимость вычислите как [Цена]*[Количество]. Для этого:

  1. Создайте запрос с помощью конструктора. В запрос добавьте поля «Номер склада», «Наименование», «Поставщик», «Цена», «Количество».
  2. Добавьте в запрос новое поле. В строке Поле введите выражение для вычисления: Стоимость: [Цена]*[Количество].
  3. Сохраните запрос и откройте его в режиме таблицы.

7. На основе запроса, созданного в упражнении 6, подготовьте отчет и форму. Используйте для этого конструктор отчетов и форм. Параметры форматирования подберите самостоятельно.