
- •Работа с базами данных в субд access
- •Введение
- •Контрольные вопросы
- •1.2. Нормализация отношений в рбд
- •1.3. Типы связей и ключей в рбд
- •Контрольные вопросы
- •2. Создание таблиц и связей в субд access
- •2.1. Создание бд в субд Access
- •2.2. Создание таблиц в режиме Конструктор
- •Контрольные вопросы
- •3. Организация связей между таблицами и заполнение таблиц
- •Контрольные вопросы
- •4. Запросы в субд access
- •4.1. Запрос на выборку данных
- •4. 2. Создание запроса в режиме Конструктор
- •4.3. Запрос с параметром
- •4.4. Итоговые запросы
- •4.5. Запросы с вычисляемым полем
- •Стоимость:[Количество] *[Цена]
- •4.6. Перекрестные запросы
- •4.7. Запрос в Режиме sql
- •Контрольные вопросы
- •5. Формы в субд access
- •5.1. Создание форм на основе Мастера форм
- •5.2. Построение диаграмм
- •5.3. Конструктор форм
- •Контрольные вопросы
- •6. Отчеты в субд access
- •Контрольные вопросы
- •Литература
- •Содержание
Контрольные вопросы
Назначение связей в БД.
Между какими объектами устанавливаются связи в БД?
Главные и подчиненные таблицы в БД.
Процедура установления связей в БД.
Назначение режима Обеспечение целостности данных.
Назначение режима Каскадное обновление связанных полей.
Назначение режима Каскадное удаление связанных полей.
Как отредактировать существующую связь.
Как удалить существующую связь.
Как заполнить таблицу данными.
4. Запросы в субд access
Формирование таблиц и заполнение их данными - это основной этап в создании БД. Хотя этот процесс необходим и достаточен с точки зрения хранения данных, он отнюдь не достаточен с точки зрения доступа и использования информации. А ведь именно последние две задачи являются в СУБД наиболее важными, так как информация для того и хранится в БД, чтобы ее можно было быстро извлечь и при необходимости обработать соответствующим образом.
Быстрый и эффективный доступ к хранящимся в таблицах данным обеспечивают запросы. Запросы используются также для обработки информации, хранящейся в таблицах: сортировки данных, проведения вычислений с данными, создания таблиц с выборочными данными, подведения итоговых результатов и т.п. Хорошо организованная БД обычно имеет сравнительно небольшое количество исходных таблиц, где хранятся данные, и большое количество разнообразных запросов, которые и обеспечивают все предъявляемые к БД требования и проводят все необходимые манипуляции с имеющейся в БД информацией.
Рис. 13. Диалоговое окно выбора способа создания запроса
При выполнении запроса СУБД Access выбирает нужные данные из соответствующей таблицы или собирает данные из разных таблиц, производит при необходимости их обработку и представляет результат в виде новой таблицы. При этом результат запроса не сохраняется, т.е. таблица запроса существует только как результат выполнения запроса, а в самом запросе сохраняется только инструкция по выборке и обработке данных. Таким образом, запрос в СУБД Access представляет собой некую программу, написанную на т.н. языке запросов SQL (Structured Query Language – язык структурированных запросов, англ., см. подробнее подраздел 4.3).
Для создания запросов СУБД Access 97 предлагает несколько вариантов (см. рис. 13). При этом в режиме Конструктор запрос создается полностью самим пользователем на основе специальной таблицы QBE (Query by Example – запрос по образцу, англ., см. рис. 16), а другие способы используют соответствующих Мастеров, где запрос создается полностью путем выбора предлагаемого готового варианта и по наводящим подсказкам.
4.1. Запрос на выборку данных
Для создания простого запроса на выборку данных, т.е. выбора только для просмотра необходимых полей таблицы или полей из совокупности связанных таблиц без обработки выбранной информации, следует в начальном окне БД (см. рис. 4) выбрать режим Запросы, нажав мышью на корешок соответствующей вкладки. Затем выполнить последовательно команды Создать/Простой запрос (см. рис. 4, 13). После этого включается Мастер, формирующий запрос в автоматическом режиме в ходе диалога. В результате сначала на экране появляется диалоговое окно с двумя подокнами: Таблицы/запросы и Выбранные поля (см. рис. 14).
Выбрав в окне Таблицы/запросы нужную таблицу, можно отобрать в ней для просмотра нужные поля, нажав после выбора мышью соответствующего поля таблицы в окне Доступные поля кнопку правее окна «>», либо сразу все поля таблицы, нажав кнопку «>>». Если же необходимо отобрать для просмотра поля сразу из нескольких связанных между собой таблиц, то после выбора полей из первой таблицы переходят в окне Таблицы/запросы к другой таблице и аналогичным образом добавляют нужные для просмотра поля.
После выбора полей таблицы Мастер Простой запрос открывает диалоговое окно, где необходимо задать имя для сформированного запроса и выбрать режим подробности выборки: подробный (вывод всех полей для каждой записи), что приводит к окончанию работы Мастера, либо итоговый для неповторяющихся записей, что соответствует т.н. Итоговому запросу, который требует дальнейшего диалога и будет рассмотрен в пособии ниже.
Рис. 14. Диалоговое окно создания Простого запроса на выборку
Создайте с помощью Мастера Простой запрос запрос на основе таблицы «Клиенты» с выбором всех полей для просмотра. Сохраните запрос под именем «Клиенты».
Необходимо заметить, что если выбирать для запроса поля сразу из нескольких таблиц, то в результате выполнения такого запроса в единой таблице будут собраны все записи, соответствующие запрашиваемым данным таблиц с повтором значений полей из главной таблицы. Это происходит вследствие того, что одной записи в главной таблице соответствует несколько записей в подчиненной таблице, и обеспечивается автоматически благодаря наличию межтабличных связей типа один-ко-многим, а также целостностью данных в БД.
Другие запросы, создаваемые с помощью Мастеров: Перекрестный, Повторяющиеся записи, Записи без подчиненных, имеют более сложную структуру и будут разбираться в пособии в дальнейшем, после подробного рассмотрения основного режима формирования запросов – режима Конструктор. Именно в режиме Конструктор можно сформировать тот запрос, который вам нужен, поскольку рассмотренный выше пример использования Мастера не способен провести даже такую простую операцию обработки данных, как сортировка записей в таблице запроса.