РАЗДЕЛ 2. ЗАПРОСЫ К БАЗЕ ДАННЫХ
Тема: «Создание запросов»
Практическая работа №7. Тема: «Создание запросов»
Создание простейшего запроса
Откройте базу данных Борей в папке своей группыКАТЕРИНА
(если этой базы у вас нет, тогда импортируйте её по следующему пути: C:\Program Files\Microsoft Office\Office\Samples\Борей.mdb)
Используя режим Конструктор, создайте запрос по таблице Клиенты, состоящий из следующих полей: Название, Адрес, Город, Область, Индекс, Страна.
Выполните запуск запроса (перейдите в режим таблицы).
Перейдите в режим Конструктор и добавьте в запрос перед полем Адрес поле ОбращатьсяК (перенесите поле ОбращатьсяК перед Адрес).
Задайте сортировку в поле Индекс по возрастанию.
Выполните запуск запроса
Создание более сложных запросов
Вывести все записи о фирмах из Калифорнии, Орегона и Вашингтона
Для этого в поле Область в условие отбора введите “CA”, в следующей строке введите “OR”, в третьей строке “WA”.
Закройте запрос и сохраните под именем Список рассылки из США №1.
Использование выражений в запросах
В запросе Список рассылки из США лучше использовать выражение In, откройте его в режиме Конструктор, удалите предыдущее условие и введите новое
In ("Or";"Ca";"Wa") и сохраните под именем Список рассылки из США №2
(для этого выберите команду Сохранить Как)
-
Поэкспериментируйте с критериями отбора для запроса Список рассылки из США №2 (используйте команду Сохранить, Как и удаляя предыдущие условия!)
поле
|
выражение
|
Возвращаемые записи
|
имя запроса
|
Страна
|
Not “США”and not “Канада”
|
Фирмы, не находящиеся в США и Канаде
|
рассылка 1
|
Название
|
Like “[H-L]*”
|
Фирмы с названиями на H-L
|
рассылка 2
|
Название
|
Like “ C*” or Like “M*”
|
Фирмы с названиями начинающиеся на С или М
|
рассылка 3
|
Название
|
Like “*MO*”
|
Фирмы с названиями, содержащими МО
|
рассылка 4
|
Используя режим Простой запрос, создайте запрос по таблице Заказы, включив в запрос поля: ДатаРазмещения, ДатаИсполнения, Стоимость Доставки, Город Получателя.
Выполните запросы, преобразуя предыдущий, используя следующие выражения (используйте команду Сохранить Как и удаляя предыдущие условия):
Поле
|
выражение
|
Возвращаемые записи
|
имя запроса
|
ДатаРазмещения
|
Like “*.*.1996”
|
Заказы, полученные в 1996 году
|
заказы1
|
ДатаРазмещения
|
Like “*.01.1996”
|
Заказы, полученные в январе 1996 года
|
заказы2
|
ДатаРазмещения
|
Like “0?.01.1996”
|
Заказы, полученные с 1 по 9 января 1996 года
|
заказы3
|
ДатаРазмещения
|
Between #1.01.1996# and #31.03. 1996#
|
Заказы, полученные в 1 квартале 1996 года
|
заказы4
|
СтоимостьДоставки
|
>=100
|
Заказы, стоимость которых не меньше 100
|
заказы5
|
СтоимостьДоставки
|
Between 100 and 130
|
Заказы, стоимость которых от 100 до 130
|
заказы6
|
Использование вычислений в запросах.
Создайте запрос в режиме Конструктор по таблице Заказано, используя поля КодТовара, Цена, Количество и Скидка (Расчеты выполняются в строке Поле!).
Выполните расчеты:
Сумма=Количество*Цена
СуммаСкидки=Цена*Скидка.
Всего=Сумма-СуммаСкидки
Сохраните запрос под именем Расчеты.
Изменение имен полей в запросе.
Откройте запрос Список рассылки из США №1 в режиме Конструктор (переименование выполняется в строке Поле!):
Переименуйте поля:
область в Штат
ОбращатьсяК в Контакт
название в Компания.
Перейдите в режим таблицы и просмотрите все имена полей, почему ОбращатьсяК не изменился? Сделайте так, чтобы поле было переименовано.
Добавление параметра к запросу.
Откройте запрос Список рассылки из США№1.
Добавьте параметр для поля Штат, содержащий следующий текст:
[Введите код штата].
Перейдите в режим таблицы и проверьте работу параметра.
Добавьте параметр в запросе Заказы4 для поля ДатаРазмещения.
Добавьте параметр в запросе Заказы6 для поля СтоимостьДоставки.
Практическая работа №8. Тема: «Запросы по нескольким таблицам. Виды соединений».
Выполнение работы:
Откройте базу данных «Борей» в папке своей группы или создайте новую базу и импортируйте таблицы из C:\Program Files\Microsoft Office\Office10\Samples\ Борей.mdb.
Создайте запрос по следующим полям:
-
таблица
|
Поле
|
Сотрудники
|
Страна
|
Фамилия
|
Имя
|
Заказы
|
ДатаИсполнения
|
КодЗаказа
|
Добавьте поле Сотрудник: [фамилия] & " " & [имя]
Для поля ДатаИсполнения введите условие с параметром:
Between [Начальная дата] And [Конечная дата]
Запустите запрос, (введите даты 12.12.96 и 12.12.97)
Поля фамилия и имя не выводить на экран.
Для поля Страна добавьте параметр (проверьте работу параметра, введите Украина).
Закройте запрос, сохранив под именем «Продажи по сотрудникам».
Использование свойства Уникальность значений.
Создайте запрос, выбирающий все товары и страны-получатели этих товаров
Выберете поле СтранаПолучателя из таблицы «Заказы», и поле Марка из таблицы «Товары». Добавьте связываемую таблицу Заказано.
Перейдите в режим таблицы и просмотрите результат –2169 записей и записи повторяются, т.к. в таблице выполнено несколько заказов каждой страной одной и той же марки в разные даты.
Для исключения повторений задайте значение Да свойства Уникальность значений в режиме Конструктор, в результате у вас должно быть 946 записей.
Сохраните запрос под именем Товары и страны.
Создание внутреннего соединения по нескольким полям
Создайте новый запрос, выводящий имена клиентов, у которых совпадают официальный адрес и Адрес доставки.
Создайте запрос по таблицам «Клиенты» и «Заказы».
В списке полей таблицы «Клиенты» выберите поле "Адрес" и перетащите его на поле «АдресПолучателя» таблицы «Заказы»,
(это приводит к созданию соединения полей Адрес и АдресПолучателя. Линия, обозначающая связь, имеет с двух сторон точки, которые указывают на то, что соединение выполнено между полями, связь которых в схеме данных не задана)
-
Выберите следующие поля:
Таблица
|
Поле
|
Клиенты
|
Название
|
Адрес
|
Заказы
|
АдресПолучателя
|
Задайте сортировку по возрастанию для поля «Название».
Чтобы запретить вывод одинаковых строк, необходимо изменить значение свойства «Уникальные значения» в бланке свойств запроса на Да.
Сохраните под именем "Заказы клиентов"
Создание внешнего соединения
Создайте запрос, который обнаруживает отсутствие записей для некоторого сотрудника в таблице «Персональные мероприятия»:
Импортируйте таблицу «Персональные мероприятия» из G:\TXT\Access\Пм.mdb.
Свяжите «Персональные мероприятия» с таблицей «Сотрудники» по полю ««КодСотрудника» в окне Схема данных с обеспечением целостности данных.
-
Создайте запрос и добавьте в него таблицы «Сотрудники» и «Персональные мероприятия» и включите в запрос поля:
Таблица
|
Поле
|
Сотрудники
|
Фамилия
|
Имя
|
Персональные мероприятия
|
КодСотрудника
|
ДатаПлан
|
Выделите линию, соединяющую поля «КодСотрудника», щелкнув по ней 2 раза.
В диалоговом окне Параметры объединения
переключатель1 задает обычное внутреннее соединение, переключатель2- левое внешнее соединение и переключатель3- правое внешнее соединение.
Задайте левое внешнее соединение и запустите запрос.
Сохраните запрос под именем «Сотрудники без персональных мероприятий»
Создание рекурсивного соединения.
Создайте запрос, в котором выводятся сотрудники, утвердившие мероприятия, за которые они ответственны, что запрещено внутренним распорядком компании Борей.
Для создания рекурсивного соединения в таблице «Персональные мероприятия»:
Создайте новый запрос и добавьте в него таблицу «Персональные мероприятия» два раза.
Перетащите поле «КодОтветственного» исходной таблицы на поле копии «КодНачальника».
Включите в запрос поля «КодСотрудника» и «КодОтветственного» исходной таблицы и «КодНачальника» и «ТипМероприятия» копии таблицы.
Задайте уникальность значений в запросе.
Просмотрите результат выполнения запроса (должны совпадать значения в полях «КодОтветственного» и «КодНачальника»).
Сохраните запрос под именем «Сотрудники, утвердившие мероприятия»
Создание соединения по отношению.
Выполните поиск клиентов, которые имеют разный официальный адрес и адрес доставки
Создайте новый запрос и добавьте в него таблицы «Клиенты» и «Заказы».
Выберите поля «Название» и «Адрес» таблицы, а также поле «АдресПолучателя» таблицы «Заказы».
Введите в строку Условие отбора поля «АдресПолучателя» выражение <>[Клиенты]![Адрес]
В бланке свойств запроса присвойте значение Да свойству «Уникальные значения»
Использование полей подстановок.
Подстановка значений внешнего ключа
Откройте таблицу «Персональные мероприятия» в режиме Конструктор.
Выделите поле «КодСотрудника» и выберите в списке Тип данных –«Мастер подстановок».
Подстановка должна быть по таблице «Сотрудники» и включать 3 поля: КодСотрудника, Фамилия, Имя.
Перейдите в режим таблицы и проверьте работу подстановки.
Добавление списка постоянных значений к полю таблицы.
Выберите поле «Тип Мероприятия», запустите Мастер подстановок.
Выберите переключатель «Фиксированный набор значений»
Число столбцов 2.
-
Введите значения:
П
|
Принять
|
К
|
Квартальный отчет
|
Г
|
Годовой отчет
|
О
|
Изменить оклад
|
Измените ширину столбцов, обеспечив достаточную ширину.
Выберите столбец1 в качестве столбца, содержащего значения, которые необходимо добавить в таблицу.
Самостоятельная работа.
Создайте запрос, отображающий категории товаров таблицы Товары и названия поставщиков таблицы Поставщики должности менеджер.
Выведите все товары таблицы Товары и если они были заказы, то по какой цене, используя таблицу Заказано.
Практическая работа №9. Зачетная работа по теме «Создание запросов данных в MS ACCESS»
Выполнение работы:
Откройте базу данных «ЗАКАЗЫ ТОВАРОВ» и удалите все запросы.
Создайте запрос 1, выбирающий поля ФИО, адрес, наименование и цена. Задайте сортировку по алфавиту для поля ФИО, выберите всех заказчиков, не живущих в Москве (условие Not "Москва") и выполнивших заказ на сумму не менее чем на 15руб.
Создайте запрос 2, выводящий всех заказчиков (ФИО, наименование, кол-во) заказы которых выполнены, поле выполнение не выводить на экран.
Создайте запрос 3, выбирающий всех заказчиков, проживающих в Волгограде, Москве или Киеве и выполнивших заказ по цене от20 до40 руб., поле Адрес переименуйте в город.
Создайте запрос 4 c вычислениями (содержащий поля фио, телефон, наименование и цена), в котором для всех заказчиков посчитайте товары, заказанные ими в долларах, поле назовите цена$
(используйте формулу цена$= цена /30).
Создайте запрос 5 с вычислениями, в котором для каждого заказчика посчитайте сумму его заказа, используя формулу: сумма заказа= цена * кол-во (поля цена и кол-во не выводите на экран).
Создайте запрос 6 с параметром для поля кол-во и содержащий поля ФИО, товар и цена, причем для поля кол-во запрашивающий начальное значение и конечное значение, а также поле кол-во не выводить на экран (используйте оператор Between).
Создайте итоговый запрос 7, выводящий для каждого заказчика максимальную цену его заказа.
Создайте итоговый запрос 8, выводящий для каждого товара кол-во его заказов.
-
Создайте перекрестный запрос 9, выводящий для каждого заказчика по датам заказа кол-во заказов (используйте функцию Count)
Заказчик
|
11_10_00
|
12_10_00
|
16_10_00
|
21_10_00
|
22_10_00
|
26_10_00
|
Захаров К.Н.
|
|
|
|
1
|
1
|
1
|
Иванов В.А.
|
|
|
1
|
|
|
|
Михайлов Н.П
|
|
1
|
1
|
1
|
|
|
.Создайте перекрестный запрос 10, выводящий для каждого заказчика по городам среднее значение кол-ва заказов (используйте функцию Avg) следующего вида:
Заказчик
|
Волгоград
|
Волжский
|
Киев
|
Москва
|
Захаров К.Н.
|
|
|
1300
|
|
Иванов В.А.
|
500
|
|
|
|
|