Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2020-05-07 | 214 |
5.00
из
|
Заказать работу |
|
|
Для построения запросов следует воспользоваться Конструктором запросов. Рассмотрим пример построения следующих запросов:
1. Просмотр авторов книги
2. Ввод нового автора и его книги
При выполнении первого запроса сначала создадим форму с полем для ввода исходных данных и кнопкой, нажатие на которую вызовет выполнение запроса.
Форма имеет вид, представленный на рисунке 7.
Рисунок 7. Структура формы для 1 запроса
Далее формируем сам запрос через режим Конструктора (рисунок 7).
Рисунок 8 – Конструкция запроса 1
Конструкция запроса должна содержать все используемые таблицы. Каждый столбец данных отвечает за необходимую по смыслу запроса информацию: 1 столбец (входная информация) – название книги, запрос получает эту информацию из поля «Название» формы «формаЗапроса1». Следующие два столба являются результатом запроса – это два информационных поля из таблицы «Авторы» - Фамилия и Имя. Кнопка на форме связывается с запросом и при нажатии на нее выполняется наш запрос. На рисунке 9 представлен результат работы Запроса 1.
а)
б)
Рисунок 9. Результат работы запроса1 а) Вид формы; б) Вид таблицы запроса
Не забудьте вставить в отчет вид SQL запроса. В нашем случае он выглядит следующим образом:
SELECT Книги.Название, Авторы.Фамилия, Авторы.Имя
FROM Книги INNER JOIN (Авторы INNER JOIN АвторКниги ON Авторы.КодАвтора = АвторКниги.КодАвтора) ON Книги.КодКниги = АвторКниги.КодКниги
GROUP BY Книги.Название, Авторы.Фамилия, Авторы.Имя
HAVING (((Книги.Название)=[Формы]![формаЗапроса1]![Название]));
Если первый запрос был посвящен просмотру БД по условию (поиск информации), то второй запрос – на добавление.
Снова создадим форму с 4 полями: Поле 1 – Фамилия автора, Поле 2 – Имя автора, Поле 3 - Дополнительное информационное поле, Поле 4 – Название книги. Также нам понадобятся два поля со списками для добавления Издательства и Раздела (рисунок 10).
|
Рис. 10. Макет Формы запроса на добавление
Для добавления новой книги с новым автором нам необходимо сделать три запроса на добавления: Запрос1 – добавить автора в таблицу «Авторы», Запрос2 – добавить название книги, а также издательство и раздел в таблицу «Книги», Запрос3 добавляет запись в таблицу-связку «АвторКниги». Рассмотрим случай, если автор один, в противном случае необходимо вызывать запрос несколько раз, используя условие окончания ввода авторов. Так как действий несколько, будем вызывать запросы по очереди, используя макросы, связанные в двумя кнопками: «Добавить» - выполнение первых двух запросов, «Сохранить» - выполнение третьего запроса и закрытие БД (сохранение внесенных изменений).
Рассмотрим структуру Запроса1 – добавление автора:
INSERT INTO Авторы (Фамилия, Имя, Примечание)
SELECT DISTINCT Формы!ФормаЗапроса2!Поле0 AS Фамилия, Формы!ФормаЗапроса2!Поле4 AS Имя, Формы!ФормаЗапроса2!Поле6 AS Примечание;
Данный запрос берет данные из полей формы (обратите внимание - обращаться надо к имени поля!!!) и формирует новую запись в таблице «Авторы» с соответствующими полями. На рис. 11 представлен запрос1 в формате конструктора.
Рис. 11 – Запрос1 в режиме конструктора
Аналогично строится запрос2 на добавление новой книги:
INSERT INTO Книги (Название, Раздел, Издательство)
SELECT DISTINCT Формы!ФормаЗапроса2!Поле8 AS Название, Формы!ФормаЗапроса2!ПолеСоСписком17 AS Раздел, Формы!ФормаЗапроса2!ПолеСоСписком21 AS Издательство;
Макрос1 будет связывать два запроса последовательно (рисунок 12).
Макрос2 будет содержать три команды – запуск запроса3 на добавление, закрытие всей БД, что приведет к сохранению изменений и закрытие самой формы запроса2 (рис. 13).
Запрос на добавление в таблицу-связку имеет следующую структуру:
|
INSERT INTO АвторКниги (КодКниги, КодАвтора)
SELECT Книги!КодКниги AS КодКниги, Авторы!КодАвтора AS КодАвтора
FROM Книги, Авторы
WHERE ((([Формы]![ФормаЗапроса2]![Поле0])=[Авторы]![Фамилия]) AND (([Формы]![ФормаЗапроса2]![Поле8])=[Книги]![Название]));
Рис. 12. Макрос1 в режиме конструктора
Рис. 13. Макрос2 в режиме конструктора
Как видно из текста SQL запроса добавление в таблицу АвторКниги происходит только при условии, что соответствующие данные есть как в таблице «Книги», так и в таблице «Авторы» (условие WHERE). В режиме конструктора Запрос представлен на рисунке 14.
Рис. 14 – Запрос3 в режиме конструктора
Мы рассмотрели запрос на добавление, в случае запроса на удаление необходимо перед выполнением запроса удалить связи между таблицами. Потом их восстановить (каскадно уже не получится, но связь по полю вернуть!!).
P.S. Написание запросов – задача творческая, имеет несколько вариантов исполнения, поэтому рекомендация – КОНСУЛЬТИРУЙТЕСЬ!!!
Защита практической работы
Содержание отчета
В отчете должны присутствовать следующие пункты:
1) Титульный лист
2) Задание
3) Структура БД
4) Примеры заполнения таблиц
5) Описание запросов на языке SQL.
6) Результаты работы запросов
Студент обязан предоставить отчет о проделанной работе преподавателю и защитить ее, выполнив дополнительные задания по теме занятия и ответив на вопросы.
Требования при подведении итогов текущей и промежуточной аттестаций
При сдаче работы в срок (не позднее последнего учебного дня в семестре), студент получает максимум 10 баллов. До дня проведения промежуточной аттестации студент имеет право защитить работу без баллов и получить допуск к зачету. Если работа не была защищена, студент не допускается до дифференциального зачета.
|
|
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!