Файл: Практикум Для студентов вузов Кемерово 2013 4 удк 004 (076) ббк 32. 81я7 И74.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.12.2023
Просмотров: 554
Скачиваний: 8
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Порядок выполнения работы (п. 2–6 задания)
Создание статического запроса на выборку
1. Щелкнуть кнопку «Создание» – «Другие» – [Конструктор запросов]. На правой панели открывается вкладка «Запрос 1», по- верх которой появляется окно диалога «Добавление таблицы». В нем из списка имеющихся таблиц БД надо выбрать таблицы, которые потребуются для создания запроса.
В качестве примера рассмотрим запрос, при выполнении которого будет получен список имеющихся в библиотеке книг по химии или биологии. Для его создания требуется одна табли- ца – «Список книг», которую и следует выбрать, затем щелкнуть
[Добавить] и закрыть окно. На ленте появляется контекстная вкладка «Конструктор запросов» (рис. 4.10). Тип запроса выби- рается в одноименном разделе вкладки. По умолчанию предла- гается создание запроса на выборку (тип запроса – «Выбор»).
4. Система управления базами данных Access
204
Рис. 4.10. Конструктор запросов
В режиме Конструктора запросов на правой панели видны две области. В верхней – «области таблиц» – отображается спи- сок таблиц, выбранных для создания запроса, их структура и связи между ними. В нашем случае здесь видна одна таблица
«Список книг». В нижней – «области критериев» – видна пустая сетка с подписями строк.
2. В первой строке области критериев указать заголовки полей, которые требуется отобразить в запросе. Для этого мы- шью перетащить названия полей со схемы таблицы в нужные окна либо выбрать нужное поле из общего списка полей всех выбранных таблиц (значок списка появляется в ячейке после помещения в нее курсора). Во второй строке автоматически отображается имя таблицы, из которой взято поле.
3. В третьей строке указать способ сортировки по значе- ниям того или иного поля.
4. В четвертой строке флажками пометить поля, которые будут выведены на экран при выполнении запроса.
4. Система управления базами данных Access
205 5. В последующих строках сформировать условия отбора.
Условие для числового поля имеет вид равенства или не- равенства и выглядит аналогично (4.4). Для создания условия- равенства, налагаемого на текстовое поле, достаточно ввести с клавиатуры в ячейку сетки нужный текст в кавычках (если за- быть про кавычки, Access добавит их самостоятельно после пе- рехода к другой ячейке), или создать выражение текстового ти- па с помощью Построителя.
При этом отдельные условия, размещенные в одной стро- ке запроса в разных столбцах, считаются объединенными опе- рацией логического умножения (конъюнкции) AND, а условия в разных строках – операцией логического сложения (дизъюнк- ции) OR. Если надо объединить операцией AND два условия для одного и того же поля, сложное условие (логическое выра- жение) записывается в одной ячейке сетки. Например, чтобы выбрать из БД записи о книгах, содержащих от 300 до 500 стра- ниц, можно для поля «Страницы» задать условие отбора либо в виде (4.2), либо в виде, соответствующем (4.3):
>=300 AND <=500.
(4.5)
Для запроса, рассматриваемого в качестве примера, усло- вием будут слова «Химия» и «Биология», записанные в сосед- них строках поля «Тема» (рис. 4.11).
6. Сохранить запрос, щелкнув по кнопке сохранения на панели быстрого доступа и указав в окне диалога имя запроса.
Для выполнения запроса щелкнуть на вкладке «Конструктор» кнопку [Выполнить]. На экране возникает таблица, содержащая результаты поиска и выбора нужных книг.
Рис. 4.11. Структура запроса на выборку
4. Система управления базами данных Access
206
Эта таблица является временной и в БД не сохраняется.
Сохраняется только запрос, который при необходимости каж- дый раз выполняется заново. Для сохранения результатов вы- полнения запроса надо либо преобразовать его в запрос на соз- дание новой таблицы (см. далее), либо оформить на основе по- лученных результатов отчет (см. лабораторную работу 6).
Формирование запроса на создание таблицы
При работе с БД в таблицу могут вноситься различные изменения. При этом может оказаться необходимым сохранить
(«заморозить») какое-либо промежуточное состояние таблицы или ее части. Например, может возникнуть необходимость со- хранить исходные значения цен книг на момент поступления в библиотеку. Для этого можно автоматически создать «урезан- ную» таблицу, содержащую минимально необходимый набор полей, например «№» (ключевое поле счетчика), «Авторы»,
«Название» и «Цена» (для указанной цели достаточно иметь всего два поля – «№» и «Цена», но такая таблица потеряла бы наглядность).
Для создания таблицы используется специальный запрос, формируемый в следующем порядке:
7. Создать запрос на выборку, который послужит основой для преобразования в запрос на создание таблицы. В рассматри- ваемом примере в запрос включаются четыре перечисленных поля, а условия отбора отсутствуют.
8. Щелкнуть кнопку «Конструктор» – «Тип запроса» –
[Тип запроса: создание таблицы]. Окно Конструктора принима- ет вид, показанный на рис. 4.12.
9. В окне диалога указать имя создаваемой таблицы –
«Исходные цены книг». Переключатель установить в положение
«в текущей базе данных» (как видно из структуры окна, новую таблицу на основе данной БД можно создать и в другой базе).
4. Система управления базами данных Access
207
Рис. 4.12. Запрос на создание таблицы
10. Щелкнуть [ОК].
11. Сохранить запрос под именем «Создание таблицы».
12. Запустить запрос на выполнение, щелкнув кнопку
«Конструктор» – [Выполнить].
Сохраненный запрос можно использовать впоследствии для обновления созданной таблицы (например, в случае измене- ния каких-то данных в исходной таблице). Для этого после вне- сения изменений в исходную таблицу («Список книг») надо от- крыть запрос и запустить его на выполнение. В результате на месте старой таблицы с помощью запроса будет создана новая таблица той же структуры, в которой будут отражены измене- ния, сделанные в исходной таблице.
Создание запроса на обновление данных
Запрос на обновление позволяет избежать трудоемкой ра- боты по ручной корректировке данных, если эта корректировка должна быть произведена по некоторому единому правилу.
Рассмотрим для примера ситуацию – вследствие износа и морального старения все книги, выпущенные до 2005 года, были уценены на 10 %. Необходимо внести в таблицу соответствую- щие изменения.
4. Система управления базами данных Access
208
Идея запроса на обновление заключается в том, что выби- рается поле, данные которого должны быть обновлены, и зада- ется новое значение поля или выражение для его вычисления.
При необходимости задается условие отбора записей, данные которых должны быть изменены. Запрос создается в следующем порядке:
13. Создать запрос на выборку на основе таблицы, в кото- рую будут вноситься изменения («Список книг»). Для запроса использовать два поля таблицы – «Год» (для создания условия отбора записей) и «Цена» (для изменения).
14. В строку «Условие отбора» для поля «Год» внести ус- ловие отбора книг, изданных до 2005 года: <2005. Это можно сделать прямо в ячейке сетки с помощью клавиатуры.
15. Щелкнуть кнопку «Конструктор» – «Тип запроса» –
[Запрос на обновление]. Окно Конструктора принимает вид, по- казанный на рис. 4.13.
16. В строку «Обновление» для поля «Цена» с помощью
Построителя («Работа с запросами» – «Конструктор» –
«Настройка запроса» – [Построитель]) ввести новое выражение цены – в рассматриваемом примере она должна составлять 90 % от прежней цены.
17. Сохранить запрос под именем «Обновление цены».
18. Запустить запрос на выполнение.
При выполнении запроса СУБД выводит на экран окно с предупреждением о том, что в таблице будет изменено соответ- ствующее количество записей (рис. 4.13). Если в окне щелкнуть
[Да], то изменения будут внесены, причем это действие уже не- возможно будет отменить.
4. Система управления базами данных Access
209
Рис. 4.13. Создание запроса на обновление
Создание запроса на добавление записей
Использование запроса на создание таблицы для обновле- ния записей в таблице, ранее созданной с помощью этого запро- са, может оказаться нецелесообразным. Допустим, в исходной таблице «Список книг» были автоматически обновлены значе- ния поля «Цена», а уже после этого в библиотеку поступили но- вые книги, данные о которых были занесены в эту таблицу. Ес- ли теперь обновить таблицу «Исходные цены книг» с помощью существующего запроса на создание таблицы, то для старых книг в нее попадут уже не исходные, а измененные значения цены.
Значит, надо иметь возможность добавлять в таблицу
«Исходные цены книг» только данные о новых книгах, оставляя старые без изменения. Для этого служит запрос на добавление записей (рис. 4.14), создаваемый в следующем порядке:
19. Создать запрос на выборку на основе таблицы «Спи- сок книг», включающий поля, которые соответствуют таблице
«Исходные цены книг», а также поле «Поступила», необходи- мое для создания условия отбора. Условием является совпаде- ние даты поступления книги в библиотеку с текущей календар-
4. Система управления базами данных Access
210 ной датой (см. рис. 4.14), поскольку добавление записей в таб- лицу исходных цен должно выполняться сразу же после занесе- ния книги в основную таблицу «Список книг» – в тот же день.
Рис. 4.14. Запрос на добавление записей
20. Щелкнуть кнопку «Конструктор» – «Тип запроса» –
[Тип запроса: добавление]. Окно Конструктора принимает вид, аналогичный показанному на рис. 4.12, но в окне диалога требу- ется теперь указать имя таблицы, в которую будет добавлена запись.
21. Щелкнуть [OK]. В области критериев появляется стро- ка «Добавление» (рис. 4.14). Если среди полей в этой строке указано поле, которое отсутствует в таблице, куда добавляются записи (например, поле «Поступила»), надо установить в ячейку курсор и удалить имя этого поля.
22. Сохранить запрос.
23. Запустить запрос на выполнение; в окне предупрежде- ния (рис. 4.14) щелкнуть [Да].
211
Таблица 4.10
Варианты запросов на выборку
№
Поля, включенные в запрос
Условия отбора
Поле и тип сортировки
Примечание
1
Авторы, Название,
Год издания, Тема
Тема: «Программирование» или «Офисные программы»; изданы после 2004 г.
Год издания, убывание
Поле «Тема» на экран не выводить
2
Авторы, Название,
Страницы, Поступила
Больше 300 стр., поступили до 1.01.2010
Страницы, убывание
3
Авторы, Название,
Место издания, По- ступила
Книги по математическому анализу, изданные до 2005 г.
Поступила, возрастание
4
Авторы, Название,
Год издания, Тема
Более 500 стр., изданы после 2004 г.
Год издания, убывание
Поле «Тема» на экран не выводить
5
Авторы, Название,
Страницы, Год изда- ния
Книги издательства «СПб.:
Лань», изданы после 2006 г.
Год издания, возрастание
6
Авторы, Название,
Цена, Тема
Книги по темам «Офисные про- граммы» или «Базы данных», дешевле 500 р.
Авторы, убывание
Поле «Тема» на экран не выводить
7
Авторы, Название,
Страницы, Год
Более 300 стр., изданы до 2006 г.
Авторы, возрастание
4
. Си
ст
ем
а упр
авл
ения
ба
за
ми да
нны
х
A
cc
ess
211
212
Окончание табл. 4.10 8
Авторы, Название,
Страницы, Тема
Книги по темам «Прикладная математика» или «Математиче- ский анализ», более 500 стр.
Страницы, убывание
Поле «Тема» на экран не выводить
9
Авторы, Название,
Страницы, Тема
Место издания: «М.: ИНТУИТ», больше 320 стр.
Дата поступле- ния, возрастание
Поле «Издательство» на экран не выводить
10
Авторы, Название,
Год издания, Страни- цы
Изданы после 2005 г., более 500 стр.
Название, возрастание
11
Авторы, Название,
Год издания, Посту- пила
Изданы более, чем за два года до поступления в библиотеку, или поступили до начала 2008 г.
Авторы, возрастание
12
Авторы, Название,
Цена, Тема
Авторы с фамилиями на буквы
«Г» или «С», дороже 500 р.
Цена, возрастание
Поле «Тема» на экран не выводить
13
Авторы, Название,
Страницы, Цена
Больше 300 стр. и дороже 300 р.
Авторы, возрастание
14
Авторы, Название,
Место издания, Тема
Темы «Машиностроение»,
«Химическая и пищевая техноло- гия»; изданы после 2005 г.
Название, убывание
Поле «Тема» на экран не выводить
15
Авторы, Название,
Страницы, Цена
Авторы с фамилиями на буквы
«Г» или «Х», книги толще
250 стр.
Страницы, возрастание
4
. Си
ст
ем
а упр
авл
ения
ба
за
ми да
нны
х
A
cc
ess
21 2
4. Система управления базами данных Access
213
Таблица 4.11
Варианты обновления цены
№
Способ обновления цены
1
Увеличить на 25 р
2
Уменьшить в 1,2 раза
3
Увеличить на 15 %
4
Уменьшить на 5 %
5
Уменьшить на 20 р.
6
Увеличить в 1,05 раза
7
Увеличить на 25 р.
8
Уменьшить в 1,2 раза
9
Увеличить на 15 %
10
Уменьшить на 5 %
11
Уменьшить на 20 р.
12
Увеличить в 1,05 раза
13
Увеличить на 25 р.
14
Уменьшить в 1,2 раза
15
Увеличить на 10 %
4. Система управления базами данных Access
214
Лабораторная работа № 4
Создание запросов на основе связанных таблиц
Цель работы: освоение приемов связывания таблиц, на- стройки связей и организации статических и параметрических запросов на основе связанных таблиц.
Связывание таблиц. Схема данных
Отдельные таблицы БД должны быть связаны между со- бой для того, чтобы данные из этих таблиц можно было исполь- зовать совместно. Принципы связей описаны в § 4.1.
При создании БД в лабораторной работе № 1 мы исполь- зовали отдельные наборы данных из таблиц для создания спи- сков подстановок в поля других таблиц. Тем самым были авто- матически заданы связи между этими таблицами.
Структура связей отображается в Схеме данных, которая открывается щелчком по «Работа с базами данных» – «Показать или скрыть» – [Схема данных]. На схеме показаны списки полей имеющихся в БД таблиц и связи между ними (рис. 4.15).
Рис. 4.15. Схема данных
Если какая-то таблица не показана на схеме, следует щелкнуть по схеме правой кнопкой мыши и в контекстном ме- ню выбрать команду «Добавить таблицу». Добавление прово- дится так же, как при создании запросов. Списки полей можно перетаскивать мышью, придавая схеме данных более удобный вид.
4. Система управления базами данных Access
215
Если какая-либо связь отсутствует (скорее всего, это зна- чит, что при заполнении таблицы какое-то значение было зане- сено с клавиатуры, а не с помощью списка подстановок), ее можно установить принудительно. Для этого достаточно про- вести мышью с нажатой левой кнопкой от строки с именем ключевого поля в одной таблице («главной») к строке с именем поля в другой таблице («подчиненной»), которое является внешним ключом для связи. На рис. 4.15 внешние ключи поме- чены символом
Если символы 1 и
на линиях связи, показывающие ха- рактер связи – «один ко многим», отсутствуют, следует изме- нить связь, щелкнув по ее линии правой кнопкой и выбрав в контекстном меню команду «Изменить связь». В окне диалога
(рис. 4.16) надо установить флажок «Обеспечение целостности данных» и щелкнуть [ОК].
Целостность означает, что данные разных таблиц должны соответствовать друг другу с точки зрения структуры таблиц, связей между ними и смысла содержания полей. Если эти тре- бования соблюдены, на линии связи появляются указанные значки. Появление сообщения об отказе в поддержании целост- ности означает, что данные ключевых полей связи могут не со- ответствовать друг другу: а) в поле внешнего ключа подчиненной таблицы имеются значения, отсутствующие в главной таблице. Например, в поле
«Читатель» таблицы «Список книг» может быть указан номер чи- тательского билета, которого нет в таблице «Список читателей»; б) ключевые поля связи не совпадают по типу данных.
Допускается единственная возможность несовпадения типов, не нарушающая целостности – можно связывать ключевое поле типа «Счетчик» с полем числового типа «Длинное целое».
Создание статического запроса на выборку
1. Щелкнуть кнопку «Создание» – «Другие» – [Конструктор запросов]. На правой панели открывается вкладка «Запрос 1», по- верх которой появляется окно диалога «Добавление таблицы». В нем из списка имеющихся таблиц БД надо выбрать таблицы, которые потребуются для создания запроса.
В качестве примера рассмотрим запрос, при выполнении которого будет получен список имеющихся в библиотеке книг по химии или биологии. Для его создания требуется одна табли- ца – «Список книг», которую и следует выбрать, затем щелкнуть
[Добавить] и закрыть окно. На ленте появляется контекстная вкладка «Конструктор запросов» (рис. 4.10). Тип запроса выби- рается в одноименном разделе вкладки. По умолчанию предла- гается создание запроса на выборку (тип запроса – «Выбор»).
4. Система управления базами данных Access
204
Рис. 4.10. Конструктор запросов
В режиме Конструктора запросов на правой панели видны две области. В верхней – «области таблиц» – отображается спи- сок таблиц, выбранных для создания запроса, их структура и связи между ними. В нашем случае здесь видна одна таблица
«Список книг». В нижней – «области критериев» – видна пустая сетка с подписями строк.
2. В первой строке области критериев указать заголовки полей, которые требуется отобразить в запросе. Для этого мы- шью перетащить названия полей со схемы таблицы в нужные окна либо выбрать нужное поле из общего списка полей всех выбранных таблиц (значок списка появляется в ячейке после помещения в нее курсора). Во второй строке автоматически отображается имя таблицы, из которой взято поле.
3. В третьей строке указать способ сортировки по значе- ниям того или иного поля.
4. В четвертой строке флажками пометить поля, которые будут выведены на экран при выполнении запроса.
4. Система управления базами данных Access
205 5. В последующих строках сформировать условия отбора.
Условие для числового поля имеет вид равенства или не- равенства и выглядит аналогично (4.4). Для создания условия- равенства, налагаемого на текстовое поле, достаточно ввести с клавиатуры в ячейку сетки нужный текст в кавычках (если за- быть про кавычки, Access добавит их самостоятельно после пе- рехода к другой ячейке), или создать выражение текстового ти- па с помощью Построителя.
При этом отдельные условия, размещенные в одной стро- ке запроса в разных столбцах, считаются объединенными опе- рацией логического умножения (конъюнкции) AND, а условия в разных строках – операцией логического сложения (дизъюнк- ции) OR. Если надо объединить операцией AND два условия для одного и того же поля, сложное условие (логическое выра- жение) записывается в одной ячейке сетки. Например, чтобы выбрать из БД записи о книгах, содержащих от 300 до 500 стра- ниц, можно для поля «Страницы» задать условие отбора либо в виде (4.2), либо в виде, соответствующем (4.3):
>=300 AND <=500.
(4.5)
Для запроса, рассматриваемого в качестве примера, усло- вием будут слова «Химия» и «Биология», записанные в сосед- них строках поля «Тема» (рис. 4.11).
6. Сохранить запрос, щелкнув по кнопке сохранения на панели быстрого доступа и указав в окне диалога имя запроса.
Для выполнения запроса щелкнуть на вкладке «Конструктор» кнопку [Выполнить]. На экране возникает таблица, содержащая результаты поиска и выбора нужных книг.
Рис. 4.11. Структура запроса на выборку
4. Система управления базами данных Access
206
Эта таблица является временной и в БД не сохраняется.
Сохраняется только запрос, который при необходимости каж- дый раз выполняется заново. Для сохранения результатов вы- полнения запроса надо либо преобразовать его в запрос на соз- дание новой таблицы (см. далее), либо оформить на основе по- лученных результатов отчет (см. лабораторную работу 6).
Формирование запроса на создание таблицы
При работе с БД в таблицу могут вноситься различные изменения. При этом может оказаться необходимым сохранить
(«заморозить») какое-либо промежуточное состояние таблицы или ее части. Например, может возникнуть необходимость со- хранить исходные значения цен книг на момент поступления в библиотеку. Для этого можно автоматически создать «урезан- ную» таблицу, содержащую минимально необходимый набор полей, например «№» (ключевое поле счетчика), «Авторы»,
«Название» и «Цена» (для указанной цели достаточно иметь всего два поля – «№» и «Цена», но такая таблица потеряла бы наглядность).
Для создания таблицы используется специальный запрос, формируемый в следующем порядке:
7. Создать запрос на выборку, который послужит основой для преобразования в запрос на создание таблицы. В рассматри- ваемом примере в запрос включаются четыре перечисленных поля, а условия отбора отсутствуют.
8. Щелкнуть кнопку «Конструктор» – «Тип запроса» –
[Тип запроса: создание таблицы]. Окно Конструктора принима- ет вид, показанный на рис. 4.12.
9. В окне диалога указать имя создаваемой таблицы –
«Исходные цены книг». Переключатель установить в положение
«в текущей базе данных» (как видно из структуры окна, новую таблицу на основе данной БД можно создать и в другой базе).
4. Система управления базами данных Access
207
Рис. 4.12. Запрос на создание таблицы
10. Щелкнуть [ОК].
11. Сохранить запрос под именем «Создание таблицы».
12. Запустить запрос на выполнение, щелкнув кнопку
«Конструктор» – [Выполнить].
Сохраненный запрос можно использовать впоследствии для обновления созданной таблицы (например, в случае измене- ния каких-то данных в исходной таблице). Для этого после вне- сения изменений в исходную таблицу («Список книг») надо от- крыть запрос и запустить его на выполнение. В результате на месте старой таблицы с помощью запроса будет создана новая таблица той же структуры, в которой будут отражены измене- ния, сделанные в исходной таблице.
Создание запроса на обновление данных
Запрос на обновление позволяет избежать трудоемкой ра- боты по ручной корректировке данных, если эта корректировка должна быть произведена по некоторому единому правилу.
Рассмотрим для примера ситуацию – вследствие износа и морального старения все книги, выпущенные до 2005 года, были уценены на 10 %. Необходимо внести в таблицу соответствую- щие изменения.
4. Система управления базами данных Access
208
Идея запроса на обновление заключается в том, что выби- рается поле, данные которого должны быть обновлены, и зада- ется новое значение поля или выражение для его вычисления.
При необходимости задается условие отбора записей, данные которых должны быть изменены. Запрос создается в следующем порядке:
13. Создать запрос на выборку на основе таблицы, в кото- рую будут вноситься изменения («Список книг»). Для запроса использовать два поля таблицы – «Год» (для создания условия отбора записей) и «Цена» (для изменения).
14. В строку «Условие отбора» для поля «Год» внести ус- ловие отбора книг, изданных до 2005 года: <2005. Это можно сделать прямо в ячейке сетки с помощью клавиатуры.
15. Щелкнуть кнопку «Конструктор» – «Тип запроса» –
[Запрос на обновление]. Окно Конструктора принимает вид, по- казанный на рис. 4.13.
16. В строку «Обновление» для поля «Цена» с помощью
Построителя («Работа с запросами» – «Конструктор» –
«Настройка запроса» – [Построитель]) ввести новое выражение цены – в рассматриваемом примере она должна составлять 90 % от прежней цены.
17. Сохранить запрос под именем «Обновление цены».
18. Запустить запрос на выполнение.
При выполнении запроса СУБД выводит на экран окно с предупреждением о том, что в таблице будет изменено соответ- ствующее количество записей (рис. 4.13). Если в окне щелкнуть
[Да], то изменения будут внесены, причем это действие уже не- возможно будет отменить.
4. Система управления базами данных Access
209
Рис. 4.13. Создание запроса на обновление
Создание запроса на добавление записей
Использование запроса на создание таблицы для обновле- ния записей в таблице, ранее созданной с помощью этого запро- са, может оказаться нецелесообразным. Допустим, в исходной таблице «Список книг» были автоматически обновлены значе- ния поля «Цена», а уже после этого в библиотеку поступили но- вые книги, данные о которых были занесены в эту таблицу. Ес- ли теперь обновить таблицу «Исходные цены книг» с помощью существующего запроса на создание таблицы, то для старых книг в нее попадут уже не исходные, а измененные значения цены.
Значит, надо иметь возможность добавлять в таблицу
«Исходные цены книг» только данные о новых книгах, оставляя старые без изменения. Для этого служит запрос на добавление записей (рис. 4.14), создаваемый в следующем порядке:
19. Создать запрос на выборку на основе таблицы «Спи- сок книг», включающий поля, которые соответствуют таблице
«Исходные цены книг», а также поле «Поступила», необходи- мое для создания условия отбора. Условием является совпаде- ние даты поступления книги в библиотеку с текущей календар-
4. Система управления базами данных Access
210 ной датой (см. рис. 4.14), поскольку добавление записей в таб- лицу исходных цен должно выполняться сразу же после занесе- ния книги в основную таблицу «Список книг» – в тот же день.
Рис. 4.14. Запрос на добавление записей
20. Щелкнуть кнопку «Конструктор» – «Тип запроса» –
[Тип запроса: добавление]. Окно Конструктора принимает вид, аналогичный показанному на рис. 4.12, но в окне диалога требу- ется теперь указать имя таблицы, в которую будет добавлена запись.
21. Щелкнуть [OK]. В области критериев появляется стро- ка «Добавление» (рис. 4.14). Если среди полей в этой строке указано поле, которое отсутствует в таблице, куда добавляются записи (например, поле «Поступила»), надо установить в ячейку курсор и удалить имя этого поля.
22. Сохранить запрос.
23. Запустить запрос на выполнение; в окне предупрежде- ния (рис. 4.14) щелкнуть [Да].
211
Таблица 4.10
Варианты запросов на выборку
№
Поля, включенные в запрос
Условия отбора
Поле и тип сортировки
Примечание
1
Авторы, Название,
Год издания, Тема
Тема: «Программирование» или «Офисные программы»; изданы после 2004 г.
Год издания, убывание
Поле «Тема» на экран не выводить
2
Авторы, Название,
Страницы, Поступила
Больше 300 стр., поступили до 1.01.2010
Страницы, убывание
3
Авторы, Название,
Место издания, По- ступила
Книги по математическому анализу, изданные до 2005 г.
Поступила, возрастание
4
Авторы, Название,
Год издания, Тема
Более 500 стр., изданы после 2004 г.
Год издания, убывание
Поле «Тема» на экран не выводить
5
Авторы, Название,
Страницы, Год изда- ния
Книги издательства «СПб.:
Лань», изданы после 2006 г.
Год издания, возрастание
6
Авторы, Название,
Цена, Тема
Книги по темам «Офисные про- граммы» или «Базы данных», дешевле 500 р.
Авторы, убывание
Поле «Тема» на экран не выводить
7
Авторы, Название,
Страницы, Год
Более 300 стр., изданы до 2006 г.
Авторы, возрастание
4
. Си
ст
ем
а упр
авл
ения
ба
за
ми да
нны
х
A
cc
ess
211
212
Окончание табл. 4.10 8
Авторы, Название,
Страницы, Тема
Книги по темам «Прикладная математика» или «Математиче- ский анализ», более 500 стр.
Страницы, убывание
Поле «Тема» на экран не выводить
9
Авторы, Название,
Страницы, Тема
Место издания: «М.: ИНТУИТ», больше 320 стр.
Дата поступле- ния, возрастание
Поле «Издательство» на экран не выводить
10
Авторы, Название,
Год издания, Страни- цы
Изданы после 2005 г., более 500 стр.
Название, возрастание
11
Авторы, Название,
Год издания, Посту- пила
Изданы более, чем за два года до поступления в библиотеку, или поступили до начала 2008 г.
Авторы, возрастание
12
Авторы, Название,
Цена, Тема
Авторы с фамилиями на буквы
«Г» или «С», дороже 500 р.
Цена, возрастание
Поле «Тема» на экран не выводить
13
Авторы, Название,
Страницы, Цена
Больше 300 стр. и дороже 300 р.
Авторы, возрастание
14
Авторы, Название,
Место издания, Тема
Темы «Машиностроение»,
«Химическая и пищевая техноло- гия»; изданы после 2005 г.
Название, убывание
Поле «Тема» на экран не выводить
15
Авторы, Название,
Страницы, Цена
Авторы с фамилиями на буквы
«Г» или «Х», книги толще
250 стр.
Страницы, возрастание
4
. Си
ст
ем
а упр
авл
ения
ба
за
ми да
нны
х
A
cc
ess
21 2
4. Система управления базами данных Access
213
Таблица 4.11
Варианты обновления цены
№
Способ обновления цены
1
Увеличить на 25 р
2
Уменьшить в 1,2 раза
3
Увеличить на 15 %
4
Уменьшить на 5 %
5
Уменьшить на 20 р.
6
Увеличить в 1,05 раза
7
Увеличить на 25 р.
8
Уменьшить в 1,2 раза
9
Увеличить на 15 %
10
Уменьшить на 5 %
11
Уменьшить на 20 р.
12
Увеличить в 1,05 раза
13
Увеличить на 25 р.
14
Уменьшить в 1,2 раза
15
Увеличить на 10 %
4. Система управления базами данных Access
214
Лабораторная работа № 4
Создание запросов на основе связанных таблиц
Цель работы: освоение приемов связывания таблиц, на- стройки связей и организации статических и параметрических запросов на основе связанных таблиц.
Связывание таблиц. Схема данных
Отдельные таблицы БД должны быть связаны между со- бой для того, чтобы данные из этих таблиц можно было исполь- зовать совместно. Принципы связей описаны в § 4.1.
При создании БД в лабораторной работе № 1 мы исполь- зовали отдельные наборы данных из таблиц для создания спи- сков подстановок в поля других таблиц. Тем самым были авто- матически заданы связи между этими таблицами.
Структура связей отображается в Схеме данных, которая открывается щелчком по «Работа с базами данных» – «Показать или скрыть» – [Схема данных]. На схеме показаны списки полей имеющихся в БД таблиц и связи между ними (рис. 4.15).
Рис. 4.15. Схема данных
Если какая-то таблица не показана на схеме, следует щелкнуть по схеме правой кнопкой мыши и в контекстном ме- ню выбрать команду «Добавить таблицу». Добавление прово- дится так же, как при создании запросов. Списки полей можно перетаскивать мышью, придавая схеме данных более удобный вид.
4. Система управления базами данных Access
215
Если какая-либо связь отсутствует (скорее всего, это зна- чит, что при заполнении таблицы какое-то значение было зане- сено с клавиатуры, а не с помощью списка подстановок), ее можно установить принудительно. Для этого достаточно про- вести мышью с нажатой левой кнопкой от строки с именем ключевого поля в одной таблице («главной») к строке с именем поля в другой таблице («подчиненной»), которое является внешним ключом для связи. На рис. 4.15 внешние ключи поме- чены символом
Если символы 1 и
на линиях связи, показывающие ха- рактер связи – «один ко многим», отсутствуют, следует изме- нить связь, щелкнув по ее линии правой кнопкой и выбрав в контекстном меню команду «Изменить связь». В окне диалога
(рис. 4.16) надо установить флажок «Обеспечение целостности данных» и щелкнуть [ОК].
Целостность означает, что данные разных таблиц должны соответствовать друг другу с точки зрения структуры таблиц, связей между ними и смысла содержания полей. Если эти тре- бования соблюдены, на линии связи появляются указанные значки. Появление сообщения об отказе в поддержании целост- ности означает, что данные ключевых полей связи могут не со- ответствовать друг другу: а) в поле внешнего ключа подчиненной таблицы имеются значения, отсутствующие в главной таблице. Например, в поле
«Читатель» таблицы «Список книг» может быть указан номер чи- тательского билета, которого нет в таблице «Список читателей»; б) ключевые поля связи не совпадают по типу данных.
Допускается единственная возможность несовпадения типов, не нарушающая целостности – можно связывать ключевое поле типа «Счетчик» с полем числового типа «Длинное целое».