Запросы

advertisement
Microsoft Access
ЗАПРОСЫ В MICROSOFT ACCESS
Методические указания к лабораторной работе 4
Цель работы: освоить построение различных типов запросов в режиме
Конструктора и с помощью встроенных Мастеров; получить представление
об основных операторах языка SQL.
Существуют два основных типа запросов:

запросы
на
выборку,
выполняющие
извлечение
данных,
предназначенных для отображения.

управляющие
запросы,
выполняющие
вставку,
изменение
или
удаление данных.
В
СУБД
Microsoft
Access
для
создания
всех
типов
одной
или
запросов
предназначена вкладка «Запросы» (рисунок 1).
Рисунок 1 – Окно базы данных
ЗАПРОСЫ НА ВЫБОРКУ
Запросы
на
выборку
извлекают
данные
из
нескольких
таблиц в соответствии с заданными условиями. В режиме Конструктора
условия
задаются
в
поле
«Условие
отбора»
по
определенным
синтаксическим правилам.
Таблица 1 – Задание условий отбора в режиме Конструктора
Поле
Условие
отбора
Город
Тольятти
Москва
Фамилия
OR Like K*
Дата заказа
Between
10.09.03
15.09.03
and
Операторы, используемые при создании запросов на выборку
Математические операторы (*, +, -, /, \ - деление нацело, ^, mod
– деление по модулю). Например, Скидка:Цена*0,05.
Операторы
сравнения
(=,
<>
,<
,>
,<=
,>=).
Выражения,
использующие эти операторы, всегда принимают одно из трех значений:
истина, ложь, нуль. Например, Цвет= «Белый» истинно, если в поле стоит
значение «Белый».
Булевы (логические) операторы (and, or ,not). Например, яблоки
or финики.
1
Microsoft Access
Строковые операторы (Like – сравнение с заданным образцом, & конкатенация или склеивания строк). Например, ФИО: Фамилия & Имя.
Вспомогательные операторы (between … and, in). Например, between
10.09.03 and 15.09.03.
Приоритет операторов
Если в одном запросе используется несколько операторов, то они
выполняются в следующем порядке:
1. Математические.
2. Операторы сравнения.
3. Булевы.
4. Строковые.
5. Вспомогательные.
Параметрические запросы
При
запроса
выполнении
условие
предлагается
параметрического
выборки
задать
в
(параметр)
окне
с
полем
ввода (рисунок 2). Для создания такого
окна
Рисунок 2- Окно с полем ввода
в
строке
«Условие
отбора»
разместить прямоугольные скобки, внутри
которых
ввести
текст
сообщения
для
пользователя,
например
[Введите
фамилию]. Если задать условия отбора следующего вида
Like [Введите фамилию] & "*",
то поиск будет осуществляться по любому количеству букв, вводимых в
поле поиска.
Запросы с вычислениями
Различают два типа таких запросов. Это итоговые запросы и запросы
с вычисляемыми полями.
Итоговые (групповые) запросы
Позволяют
поля
подытожить
целиком
(группе).
Для
используются
или
в
данные
из
некоторого
определенном
интервале
подведения
различные
таких
функции,
итогов
наиболее
применяемые из которых – Sum() (сумма значений),
Avg()
(среднее
значение),
Count()
Рисунок 3- Выбор
функции в
групповом запросе
(количество
(максимальное значение), Min() (минимальное значение).
2
строк),
Max()
Microsoft Access
Для создания итогового запроса необходимо в меню “Вид” выбрать
команду “Групповые операции” или нажать кнопку с буквой ∑ на панели
инструментов. При этом в бланке запроса появится строка “Групповая
операция”. По умолчанию в этой строке выведено слово “Группировка” для
группировки данных. Для проведения вычислений по нужному полю вместо
слова “Группировка” следует выбрать ту или иную функцию (рисунок 3).
Перекрестные запросы
Перекрестные запросы являются разновидностью групповых. Итоговые
значения, вычисляемые с помощью агрегирующих функций (Sum(), Avg() и
т.д.) находятся на пересечении столбцов и строк. Результирующий набор
данных приведен в таблице 2.
Таблица 2 – Результат выполнения перекрестного запроса
Для
создания
перекрестного
запроса
необходимо
в
меню
“Запрос”
выбрать команду “Перекрестный” (пример формирования запроса приведен
на рисунке 4). При этом в бланке запроса появится строка “Перекрестная
таблица”,
в
(Диски.Name)
которой
и
можно
столбцов
выбрать
(Family).
поля
Итоговые
для
данные
заголовков
строк
подсчитываются
с
помощью функции count(), аргументом которой является поле InUse.
Рисунок 4 – Пример формирования перекрестного запроса
Запросы с вычисляемыми полями
Эти запросы позволяют производить действия с помощью создаваемых
выражений над числовыми и строковыми значениями или над значениями
дат, которые выполняются для всех записей с использованием значений
одного или нескольких полей. Результаты вычислений в вычисляемом поле
не
запоминаются
в
базовой
таблице.
Вместо
этого,
вычисления
снова
производятся всякий раз, когда выполняется запрос, поэтому результаты
всегда
представляют
текущее
содержимое
базы
данных.
Обновить
вычисленные результаты вручную невозможно.
Для ввода выражения следует создать новое вычисляемое поле в режиме Конструктора и
ввести выражение вручную или с помощью Построителя выражений, упрощающего эту
процедуру. Например,
.
3
Microsoft Access
УПРАВЛЯЮЩИЕ ЗАПРОСЫ
Запросы на удаление
Запросы
на
удаление
используются
для
удаления
данных,
удовлетворяющих определенному условию. Например, можно удалить данные
до определенной даты и к настоящему времени устаревшие.
Для изменения вида запроса необходимо в меню «Запрос» выбрать
команду
«Удаление».
В
бланке
запроса,
в
строке
«Условие
отбора»
следует ввести условие отбора удаляемых записей.
Внимание! После выполнения запроса на удаление все, отвечающие
условию записи будут удалены без возможности их восстановления.
Запросы на обновление
Эти запросы используются для обновления информации в одном или
нескольких полях отобранных записей. То есть, они позволяют отобрать
записи
по
какому-либо
критерию
(что,
как
уже
известно,
делают
и
простые запросы на выборку) и обновить информацию в указанных полях
этих записей.
Запросы на добавление
С помощью запросов на добавление записи из одной таблицы (все или
отобранные этим же запросом) можно поместить (скопировать) в другую
таблицу. При этом обе таблицы могут находиться как в одной, так и в
разных базах данных.
Просмотр запросов в режиме SQL
Все виды запросов, созданные в режиме Конструктора или с помощью
Мастеров,
СУБД
Microsoft
Access
представляет
на
языке
SQL.
Для
просмотра необходимо выбрать в меню “Вид” команду “Режим SQL”.
Контрольные вопросы
1. Перечислите операторы, используемые при создании запросов на
выборку.
2. В
каком
порядке
выполняются
разные
типы
операторов,
используемые в одном запросе?
3. Какие виды запросов можно создать в СУБД Microsoft Access?
4. Каким образом формируется параметрический запрос?
5. Какие функции используются в групповых запросах для подсчета
итоговых значений?
4
Microsoft Access
Лабораторная работа 4. ЗАПРОСЫ
В базу данных, созданную на лабораторной работе 3, из базы данных …\Мои
документы\БД_ИТ\Базы
Данных\Фрукты.mdb
импортируйте
таблицы
«Фрукты»,
«Описания наборов», «Наборы», «Заказы», «Покупатели», «Служащие».
Запросы на выборку
Все запросы создайте в режиме Конструктора
и просмотрите в режиме SQL (меню Вид  Режим SQL
или
соответствующий
значок
на
панели
инструментов – рисунок 1). Создайте запросы,
предоставляющие следующую информацию:
1. Найдите поочередно фрукты разных категорий:
Рисунок 1 – Панель инструментов
a. свежие (код категории=1);
b. сушеные (код категории=2);
c. засахаренные (код категории=3);
d. в шоколаде (код категории=4).
Преобразуйте
запрос
на
выборку
в
параметрический запрос. При выполнении запроса
значение (параметр) вводится в формируемом
программой окне, представленном на рисунке 2.
Рисунок 2 – Окно с полем ввода
2. Представьте список наборов, вес который
больше 2 кг, а цена меньше 200 руб.
3. В какие города были отправлены заказы, сделанные с 5 по 11 ноября
1996г. включительно?
4. Используя таблицы «Фрукты», «Описания наборов» и «Наборы», ответьте на
вопрос: из каких фруктов состоит каждый набор.
5. Вычислите цену со скидкой 5% для наборов, цена которых больше 150 руб.
Назовите новое поле «Цена со скидкой» (см. пример оформления Отчета).
6. Необходимо выяснить какие наборы, по какой цене и какого числа были
отправлены в города Тольятти и Москву.
7. Необходимо просмотреть в одной таблице все засахаренные фрукты и фрукты
в шоколаде, у которых стоимость меньше 6 руб.
8. Покажите засахаренные и фрукты в шоколаде. И у тех и у других цена
меньше 6 руб.
9. У кого из служащих нет фото?
10. Кажется, что фамилия покупателя заканчивается на -чук. Помогите найти
его адрес и телефон.
Отчет по лабораторной работе 4 необходимо представить в письменном виде
в тетради. Пример оформления отчета представлен в таблице 1.
Таблица 1 – Запросы на выборку
№ запр.
2
Поле(я) ввода условий
Условие(я) отбора
Вес
>2000
Цена
<200
51
Цена
>150
1В запросе создано вычисляемое поле:
Цена со скидкой: [Наборы]![Цена]-[Наборы]![Цена]*0,05.
SQL-код
WHERE Наборы.Веc>2000
AND Наборы.Цена<200;
WHERE Наборы.Цена>150
Групповые запросы
Для
создания
групповых
запросов
выполните команду: меню Вид  Групповые
операции.
Пример
формирования
запроса
1
представлен на рисунке 3.
1. Сгруппируйте фрукты по категориям и
найдите среднее значение цены, затем Рисунок 3 – Окно конструктора
максимальное и минимальное.
2. Подсчитайте количество покупателей в каждом городе.
3. Найдите количество наборов в каждой весовой категории.
Пример оформления отчета по данному разделу представлен в таблице 2.
Таблица 2 – Групповые запросы
№ запр.
3
Поле группировки
Вес
Агрегирующие функции
COUNT()
5
SQL-код
………полностью………
Microsoft Access
Перекрестные запросы
1. Используя таблицы «Наборы», «Заказы» и «Описания заказов» создайте
запрос на выборку, включающий
следующие
поля:
Код
набора,
Название набора и Город.
2. Используя созданный запрос, с
помощью
Мастера
(рисунок
4)
представьте
в
перекрестной
таблице информацию о количестве
наборов, отправленных в каждый
Рисунок 4 – Запуск Мастера создания
город. Для подсчета количества
перекрестных запросов
наборов
используется
функция
COUNT(),
аргументом
которой
является поле Код набора.
Просмотрите
результат.
Затем
введите
ограничение,
позволяющее
просмотреть только те наборы, в названии которых есть слово «фрукт».
Фрагмент результирующей таблицы представлен на рисунке 5.
Рисунок5 – Результат выполнения перекрестного запроса
Запрос на создание
В режиме конструктора запросов выберите в меню Запрос команду Создание
таблицы,
и,
следуя
указаниям
программы, создайте таблицу «Овощи»
с полями Название и Цена. Затем
откройте
созданную
таблицу
на
странице Таблицы окна базы данных и
заполните её (2 - 3 записи).
Запрос на добавление
В окне базы данных скопируйте таблицу Овощи и сохраните только её
структуру в таблице Овощи 1.
В режиме Конструктора создайте запрос, выбирающий все поля из таблицы
«Овощи», и задайте условия отбора для последующего переноса отобранных данных
в таблицу Овощи 1 (например Цена < 20). Просмотрите результат. Затем в меню
Запрос выберите команду Добавление и в выпадающем списке выберите имя
таблицы, куда будут добавлены (скопированы) выбранные записи. Знаком
запустите выполнение запроса.
Запрос на удаление
В режиме Конструктора создайте запрос, выбирающий все поля из таблицы
«Овощи». Затем в меню Запрос выберите команду Удаление и задайте условия
отбора для удаления строк. Запустите запрос.
Запрос на обновление
В режиме Конструктора создайте запрос, выбирающий все поля из таблицы
«Овощи». Затем в меню Запрос выберите команду Обновление и задайте условия
отбора для обновления строк. Запустите запрос.
Создание запросов с помощью мастеров (простой, повторяющиеся записи,
вопрос без подчиненных)
Самостоятельно разобрать работу мастеров, следуя указаниям программы.
6
Download