Пример выполнения задания «Проектирование запросов»
Для анализа информации в БД«Туристическая фирма «АлатанТур» разработаны следующие запросы:
1. «Места проживания клиентов» – позволяет отобразить информацию о месте проживания клиентов. Создание с помощью Мастера запросов (рис. 4.2).
Рис.4.2. Мастер создания простых запросов и простой запрос в режиме Таблицы
2. «Заказы клиентов» – позволяет сформировать список заказов, сделанных всеми клиентами. Создание в режиме Конструктора (рис. 4.3).
Рис. 4.3. Пример отбора полей для запроса «Заказы клиентов»
в режиме Конструктора
3. «Алфавитный список клиентов» – позволяет сформировать список всех клиентов туристической фирмы. Создание в режиме Конструктора (рис. 4.4).
Рис. 4.4. Запрос «Алфавитный список клиентов» в режиме Конструктора
4. «Фамилии на -ая» – позволяет сформировать список клиентов, фамилии которых заканчиваются на «-ая», например «Романовская» (рис. 4.5). Создание в режиме Конструктора.
Рис. 4.5. Вид запроса с условием «Фамилии на -ая»
5. «Длительные туры» – позволяет отобразить информацию о турах, продолжительность которых превышает 10 дней (рис. 4.6). Создание в режиме Конструктора.
Рис. 4.6. Вид запроса с условием «Длительные туры»
6. «Самые дорогие туры» – позволяет отобразить 5 самых дорогих туров. Для отображения 5 записей необходимо установить в Свойствах запроса Набор значений 5 (рис. 4.7). Создание в режиме Конструктора.
Рис. 4.7. Вид запроса «Самые дорогие туры» в режиме Конструктора и
вид окна «Свойства запроса»
7. «Проживающие на улице» – позволяет отобразить информацию о клиентах, проживающих на определенной улице. По полю Домашний адрес задать условие отбора (при помощи Построителя выражений): Like *фрагмент_названия_улицы*. Создание в режиме Конструктора (рис. 4.8).
Рис. 4.8. Макет запроса «Проживающие на улице»
8. «Возраст клиентов» – позволяет рассчитать возраст клиентов. Используется Построитель выражений. Создание в режиме Конструктора (рис. 4.9).
Рис. 4.9. Макет запроса с вычислениями «Возраст клиента»
9. «Работоспособный возраст» – позволяет отобразить клиентов работоспособного возраста с 18 до 55 лет. Создание в режиме Конструктора (рис. 4.10).
Рис. 4.10. Макет запроса «Работоспособный возраст»
10. «Заказы в дни недели» – позволяет определить, в какие дни недели совершались заказы. Воспользоваться функциейWeekday ( ) – целое число ( день недели ). Отсчет дней недели с воскресенья – 1. Создание в режиме Конструктора (рис. 4.11).
Рис. 4.11. Макет запроса «Заказы в дни недели»
11. «Фамилия и инициалы»– позволяет отобразить список фамилий и инициалов всех клиентов, которые заказали туры в определенную страну. Создание в режиме Конструктора. Для создания вычисляемого поля использовать функцию Left и оператор конкатенации строк & (рис. 4.12). В запрос поместить следующие поля Фамилия клиента, Имя клиента, Отчество клиента, Название тура. Поля Фамилия клиента, Имя клиента, Отчество клиента на экран не выводить, а для поля Название тура задать условие отбора, например «Like "Италия*"» (рис. 4.13).
Рис. 4.12. Окно Построителя выражений
Рис. 4.13. Макет запроса «Фамилия и инициалы»
12. «Запрос с параметром» – позволяет отобразить, список клиентов, воспользовавшихся указанным туром (рис. 4.14). Создание в режиме Конструктора. Для определения параметра запроса в строку условие отбора для столбца «Название тура» вместо конкретного значения вводится фраза заключенные в квадратные скобки, например [введите название тура]. Эта фраза будет выводиться в виде приглашения в диалоговом окне каждый раз при выполнении запроса (рис. 4.15).
Рис. 4.14. Макет запроса «Фамилия и инициалы»
Рис. 4.15. Диалоговое окно для ввода параметра
13. «Перекрестный 2» – позволяет отобразить информацию о турах, которые заказаны в месяцах 2008 года и их стоимость (рис. 4.16). Создание в режиме Конструктора. В качестве источника использовать запрос «Исходные данные». Для создания вычисляемого поля в области столбцов использовать функцию Format(), которая возвращает три первые буквы месяца от значения даты в столбце «Дата заказа». Для поля «Дата заказа» выбрать в списке Групповая операция значение Условие. В ячейке Условие отбора этого столбца введите выражение Between #01.01.2008# And #31.12.2008#.
Рис. 4.16. Окно бланка запроса в режиме Конструктора и результирующая таблица
Сформировать список клиентов и общее число туров, заказанных каждым из них (рис. 4.17).
Рис. 4.17. Макет запроса с групповой операциейSUM
14. «Рейтинг активности клиентов» – позволяет сформировать список клиентов, которые сделали заказы в порядке убывания (рис. 4.18). Создание в режиме Конструктора. Создается с использованием групповой операции Count по полю Код заказа.
Рис. 4.18. Макет запроса с групповой операциейCOUNT
15. «Модернизация телефонов» – позволяет модернизировать телефонные номера клиентов, начинающиеся на 276- преобразовываются на 222- (рис. 4.19). Создание в режиме Конструктора. Функция Right([Клиент]![Телефон];4) возвращает справа из текстовой строки (указанной в качестве первого аргумента) количество символов (указанных в качестве второго аргумента), т.е. в данном случае четыре последние цифры номера телефона, которые не будут изменены.
Рис. 4.19. Запрос на обновление данных в режиме Конструктора
16. «Увеличение цены путевки» – позволяет увеличить цену путевки для указанного тура на заданный процент (рис. 4.20). Создание в режиме Конструктора.
Рис. 4.20. Макет запроса на обновление
17. «Удаление клиента» - позволяет удалить информацию о клиенте по фамилии (рис. 4.21). В качестве фамилии задать параметр. Создание в режиме Конструктора.
Рис.4.21. Макет запроса на удаление данных
18. Построение SQL-запросов
Изучение SQL дает навыки, необходимые для извлечения информации из любой реляционной базы данных. Команды языка SQL можно разделить на категории (табл.4.1).
Таблица 4.1
Основные категории команд языка SQL