Методические указания к выполнению лабораторной работы “СУБД ACCESS 97” Выбор данных с помощью запросов-действий Перекрестные запросы. 1 Цель работы Приобрести навыки по работе с данными с помощью запросов-действий. 2 Задачи работы Создать и выполнить различные типы запросов-действий.
3 Порядок выполнения работы 3.1 Открыть созданную в предыдущих лабораторных работах базу данных. Создать резервную копию данных таблицы. 3.2. Обновить данные с помощью запроса на обновление. 3.3 Удалить некоторые данные с помощью запроса на удаление. 3.4 Добавить данные в запросе на добавление записей. 3.5 Создать запрос на создание таблицы для сохранения результатов итогового запроса. 3.6 Наглядно представить данные итоговых запросов, предусматривающих группировку по нескольким (двум) признакам, используя перекрестный запрос.
4 Требования к отчету Отчет о проделанной работе должен содержать: - название работы, ее задачи и последовательность выполнения; - ответы на контрольные вопросы по указанию преподавателя. К отчету прилагается дискета с результатами работы.
5 Общие положения 5.1 Понятие запросов-действий Для быстрого изменения, вставки, создания или удаления наборов данных из базы данных используются управляющие запросы или запросы-действия. Создание запросов-действий аналогично созданию запросов-выборок. Отличие лишь в том, что в режиме конструктора запросов необходимо указать тип действий над выбранными записями. Существует всего четыре типа запросов-действий: Создание таблицы, обновление, удаление, добавление Создание таблицы. Этот запрос позволяет сохранить набор данных, вышедших в ответ на запрос, в виде таблицы. Обновление. Используется для того, чтобы обновить значения некоторых полей для всех записей, вышедших в ответ на запрос. Удаление. Используется для удаления всех записей, вышедших в ответ на запрос. Добавление. Используется для добавления данных в имеющуюся таблицу. ACCESS отмечает запросы-действия специальными значками (рисунок 1).
Рис. 1. Меню для выбора типа запроса 5.1.1 Особенности работы с запросами-действиями Для того чтобы обезопасить себя от каких-либо случайностей, необходимо перед выполнением запроса-действия создать резервную копию используемой таблицы. Для создания резервной копии таблицы необходимо перейти в окно базы данных, выбрать таблицу, в которой произойдут изменения, а затем воспользоваться командой Правка/Копировать. Затем выполнить команду Правка/Вставить, и в диалоговом окне указать имя для копии таблицы. Создание запросов на обновление, добавление и удаление невозможно без разрушения целостности данных, поэтому упражняться лучше на созданной копии таблице. Новый запрос желательно создать вначале как запрос на выборку. Так вы сможете проверить правильность отбора записей. Прежде чем щелкнуть по кнопке Запуск, просмотрите результат в режиме таблице, воспользовавшись кнопкой Вид. Быстрое переключение между режимами Конструктора и Выполнения обычно осуществляется с помощью одноименных пиктограмм, расположенных на панели инструментов. 5.2 Запросы на создание таблицы Для сохранения результатов выборки в реально существующей таблице используются запросы на создание таблицы. Это ускоряет доступ к данным, полученным по запросу. Сохранение в виде отдельной таблицы полезно и в том случае, если какие-либо данные нужно хранить в течение длительного времени. Например, сводную информацию по годам необходимо хранить в течение 5 лет. Для этого создается итоговый запрос и результат его выполнения сохраняется в виде отдельной таблицы. Для этого в режиме Конструктора запросов нужно выбрать команду Запрос/Создание таблицы. Access выведет на экран диалоговое окно «Создание таблицы», где нужно указать имя таблицы, в которой будут сохранены результаты выборки (рисунок 2).
Рис. 2. Вид окна запроса на создание таблицы
5.3 Запросы на обновление записей Этот тип запросов-действий предназначен для изменения значений некоторых полей для всех выбранных записей. После входа в режим Конструктора запроса нужно выбрать команду Запрос/Обновление. После этого в бланке запроса появится строка Обновление. Эта строка используется для того, чтобы задать новые значения для выбранных записей (рисунок 3).
Рис.3. Вид окна запроса на обновление записей Обновлять значения можно не только в полях критериев, а в любом поле таблицы. Также для выбранных записей можно создавать вычисляемые поля. 5.4 Запрос на удаление записей Этот вид запросов служит для удаления группы записей базы данных, удовлетворяющих определенным условиям. Обычный запрос можно преобразовать в запрос на удаление с помощьюкоманды Запрос/Удаление в режиме Конструктора запросов. При этом в бланке запроса появится строка Удаление, где можно ввести условие для удаления записей (рисунок 4).
Рис. 4. Вид окна запроса на удаление записей В режиме Конструктора запроса необходимо указать таблицу, в которой будут проводиться удаления. Затем определить критерии и обязательно просмотреть результаты выполнения запроса на выборку. Если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать его в запрос на удаление. Удаление записей может привести к непредсказуемым результатам, в том числе и к нарушению целостности базы данных, по следующим причинам: - Таблица является частью отношения один-ко-многим - В качестве условия обеспечения целостности данных использована опция Каскадное удаление связанных полей. Например, вы решили исключить каких-то студентов и удалить соответствующие записи из таблицы Студенты. При этом существует также таблица Экзамены, которая связана с таблицей Студенты, отношением один – ко многим. Если для обеспечения целостности данных выбрана опция Каскадное удаление связанных полей, в результате удаления записей о студентах будут удалены записи об их оценках, то есть информация об успеваемости! Если установлена опция Каскадное удаление связанных полей и вы пытаетесь удалить записи в режиме просмотра таблицы, то получите предупреждение о возможном удалении данных в других таблицах. А при использовании запросов на удаление вы не увидите предупреждения. MS Access выдаст только информацию о количестве удаляемых записей, но ничего не скажет про каскадное удаление. 5.5 Запрос на добавление записей С помощью запроса на добавление записей можно скопировать выбранные записи и поместить их в другую таблицу. Можно также использовать запрос на добавление для переноса данных в используемую базу данных из другого источника (из какой-либо другой таблицы). Выполнение запроса на добавление записей можно начать (также как и в других запросах-действиях) с запуска запроса-выборки – для того, чтобы убедиться, что вы копируете необходимые записи. Если необходимо добавить записи к таблице в другой базе данных, сначала следует присоединить таблицу-источник к базе, содержащей целевую таблицу, с помощью команды Файл/Внешние данные/Связь с таблицами. Для отбора добавляемых записей нужно составить запрос на выборку. Затем надлежит выполнить составленный запрос и оценить результат, переключившись в режим таблицы с помощью команды Вид/Режим таблицы. После этого необходимо вернуться в режим Конструктора и активизировать команду Запрос/Добавление. В открывающемся окне диалога нужно в поле Имя таблицы имя таблицы, к которой требуется присоединить данные из результирующего набора записей запроса. Закрытие диалогового окна кнопкой ОК приводит к тому, что Access 97 добавляет в бланк запроса строку Добавление (рисунок 5).
Рисунок 5 Вид окна запроса на добавление записей
В строку Добавление автоматически (или вручную ) вставляются имена тех полей целевой таблицы, которые совпадают с именами полей запроса. Далее следует выполнить запрос. Для этого выполните команду Запрос/ Выполнить или щелкните по кнопке Выполнить на панели инструментов. В специальном диалоговом окне Access 97 укажет сколько записей будет добавлено к целевой таблице, и потребует подтвердить выполнение этой операции. Однако при переключении на запрос-выборку и обратно Access не сохраняет соответствия имен полей. Так что если перед запуском соответствующего запроса на добавление записей вы хотите выполнить запрос-выборку, приходится заново задавать соответствия имен двух таблиц. Добавленные по ошибке записи легко находятся и удаляются. Тем не менее, можно сэкономить время, если сделать резервную копию таблицы, в которой будет осуществляться добавление записей. 5.6 Перекрестные запросы С помощью перекрестного запроса можно более наглядно представить данные итоговых запросов, предусматривающих группировку по нескольким признакам (по двум, в частности). В этом случае значение полей по первому признаку группировки могут стать заголовками строк, а по второму - заголовками столбцов. Для преобразования итогового запроса-выборки необходимо перейти в режим его Конструктора и выполнить команду Запрос/Перекрестный. После этого в бланке запроса строка Вывод на экран будет заменена на строку Перекрестная таблица. В этой строке нужно задать, как будет использовано данное поле в перекрестной таблице: в виде заголовок строк, полей или значений (рисунок 6).
Рис.6. Вид окна перекрестного запроса Существует возможность вывести данные в перекрестной таблице без создания в базе данных отдельного запроса. Для этого следует использовать Мастер сводных данных. В сводной таблице пользователь имеет возможность изменять заголовки строк или столбцов, что позволяет анализировать данные различными способами. В перекрестном запросе отображаются результаты статистических расчетов (такие как суммы, количество записей и средние значения), выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых расположен в первом столбце таблицы, а второй - в верхней строке. 5.6.1 Использование Мастера для создания перекрестной таблицы Можно создать перекрестную таблицу в интерактивном режиме с помощью мастера «Перекрестный запрос». Обращение к Мастеру значительно упрощает процесс создания перекрестной таблицы. Мастеру необходимо указать исходную таблицу, которая может быть таблицей из базы данных или являться результатом выборки данных из нескольких таблиц. На основе исходной таблицы или запроса Мастер создает итоговую выборку, в которой группирует и сортирует данные по полям, используемым в качестве строки и столбца перекрестной таблицы, а также вычисляет итоговое значение по заданному полю данных. При создании перекрестной таблицы предстоит выполнить следующие действия: 1) Перейти на вкладку «Запросы» и выбрать кнопку Создать, а затем в окне диалога выбрать опцию Перекрестный запрос (рисунок 7).
Рисунок 7 Вид окна диалога «Новый запрос»
Эти действия запустят Мастер создания перекрестной таблицы, который шаг за шагом будет задавать вопросы о параметрах создаваемой таблицы. На первом шаге Мастер предлагает выбрать исходную таблицу или запрос. На следующем шаге вам необходимо указать поля, значения которых будут использоваться в качестве заголовков строк. Можно указать от одного до трех полей путем их переноса их переноса из списка Доступные поля в список Выбранные поля. Затем вы переходите в окно диалога определения заголовков столбцов. В качестве заголовка столбцов может использоваться только одно поле. На предпоследнем шаге создания перекрестной таблицы нужно задать поле, которое будет использоваться в качестве источника данных для итоговых вычислений, и тип итоговых вычислений для каждой пары строка/столбец (рисунок 8).
Рисунок 8 Вид окна для определения типа группировки В этом же окне диалога можно добавить столбец, который будет содержать итоговое значение по каждой строке результирующей таблицы. На завершающей стадии создании перекрестной таблицы нужно задать ее имя и выбрать опцию просмотра результатов запроса или изменения структуры запроса в окне конструктора запросов. Для завершения процесса создания необходимо нажать кнопку Готово, на экране появится построенная перекрестная таблица. В перекрестной таблице, созданной с помощью Мастера, присутствует дополнительный столбец Итого, в котором отображаются суммарные итоги данных.
6. Методические рекомендации
При работе с запросами действиями можно использовать созданные в предыдущих лабораторных работах таблицы (Студенты, Экзамены). Перед выполнением запросов-действий не забудьте создать резервную копию таблицы, чтобы не повредить данные в исходной таблице. Запросы на удаление и обновление записей делайте только в ней! 6.1 Запрос на создание таблицы 6.1.1 Сделайте запрос выборку к таблице Студенты, выбрав тех, кто не получает стипендии. Выполните запрос и просмотрите результат. 6.1.2 Перейдите в режим Конструктора для этого запроса и преобразуйте его в запрос для сохранения результатов в виде отдельной таблицы с именем Студенты без стипендии. Для этого нужно в режиме Конструктора запросов ввести команду Запрос/Создание таблицы. 6.1.3 Откройте любой итоговый запрос (созданный в предыдущих лабораторных работах) в режиме Конструктора и также преобразуйте его в запрос с сохранением данных в отдельной таблице. 6.2 Запрос на обновление записей 6.2.1 Выберите в копии таблицы Студенты всех, кто проживает в определенном городе, например, Уфе. Сделав запрос, проверьте правильность отбора записей. 6.2.2 Перейдите в режим Конструктора для этого запроса. и преобразуйте его в запрос на обновление данных. В строке Обновление задайте новое значение для поля Город (например, перепишите его с заглавной буквы или введите сокращенное название города и т.п.). Для просмотра результатов выполнения запроса на обновление записей перейдите в режим просмотра таблицы Студенты. 6.2.3 Создайте запрос-обновление для таблицы Студенты, выбрав всех студентов определенного курса и измените курс на другой. 6.3 Запрос на удаление записей 6.3.1 Создайте запрос к копии таблицы Студенты, в которой будут удалены все записи о студентах определенного курса, не получающих никакой стипендии (например, удалить все записи о студентах III курса, не получающих стипендию). 6.4 Перекрестный запрос 6.4.1 Создайте перекрестный запрос для таблицы Студенты, включив в него поля Город, Факультет и вычисляемое поле для подсчета количества студентов (функция Count по полю Номер зачетки). Поле Факультет выберите в качестве заголовка строк, поле Город - заголовка столбцов, а вычисляемое поле с количеством студентов – как значения. Выполните запрос и проанализируйте результат. 7 Контрольные вопросы 1) Типы запросов в Access. Как выбрать тип запроса? 2) Как создать запрос на обновление части данных в таблице? 3) Как удалить часть данных в таблице? 4) Какие проблемы могут возникнуть при использовании запросов удаления? 5) Как создать таблицу для постоянного хранения результатов определенного запроса? 6) Как посмотреть результат запроса? 7) Как можно изменить значение выбранного поля по всем записям таблицы, удовлетворяющим определенным условиям?
Библиография 1. Скотт Баркер., Использование Microsoft Access 97. - Киев: Диалектика.- 1997.- 363 с. 2. Мари Свонсон. Microsoft Access 97: наглядно и конкретно. – Москва: Microsoft Press, Русская редакция.- 1997.- 368 с. 3. Алексей Гончаров. Access 97 в примерах. – СПБ:Питер.- 1998.-256 с. 4. Информатика: Практикум по технологии работы на компьютере под ред. Н.В.Макаровой. - М.: Финансы и статистика.- 1997.– 293 с. 5. В. Пасько, Access97 для пользователя. – Киев: BHV.- 1997.– 365 с. 6. Информатика: Учебник для студентов экономических специальностей вузов /Под ред. Н.В.Макаровой. - М.: Финансы и статистика.- 1997.– 767 с.
|