Краткие теоретические сведения. Работа с данными с использованием запросов в Microsoft Access 2007

Лабораторная работа №7

Работа с данными с использованием запросов в Microsoft Access 2007

Цель работы.Изучение информационной технологии создания запросов по таблицам, работа с данными и групповые операции.

Краткие теоретические сведения

Запрос — это набор инструкций, который можно использовать для обработки данных. Чтобы эти инструкции были выполнены, запрос следует запустить. Запрос не только возвращает результаты — которые можно сортировать, группировать и фильтровать — с помощью запроса можно также создавать, копировать, удалять и изменять данные.

Запрос на выборку — это объект базы данных, который служит для отображения данных в режиме таблицы. Запрос может получать данные из одной или нескольких таблиц, из существующих запросов или из комбинаций таблиц и запросов. Таблицы или запросы, используемые для получения данных, называются источниками записей.

Создание простых запросов на выборку при использовании мастера и при работе в режиме конструктора происходит одинаково. Для этого следует выбрать источник записей и поля, которые требуется включить в запрос. При необходимости можно задать условия для уточнения результатов запроса.

После создания запроса на выборку его следует выполнить, чтобы получить результаты. Чтобы выполнить запрос, достаточно открыть его в режиме таблицы. Впоследствии запрос можно использовать повторно по мере необходимости, например в качестве источника записей для формы, отчета или другого запроса.

Запрос на добавление добавляет набор записей (строк) из одной или нескольких исходных таблиц (или запросов) в одну или несколько результирующих таблиц. Обычно исходные таблицы и конечная таблица находятся в одной и той же базе данных, но это не обязательно. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить новые данные вручную, их можно добавить в соответствующую таблицу имеющейся базы данных. Можно также использовать запросы на добавление при выполнении следующих действий:

· Добавление полей на основании условий отбора. Например, необходимо добавить имена и адреса клиентов с очень крупными заказами.

· Добавление записей, когда некоторых полей одной таблицы не существует в другой. Допустим, в таблице «Заказчики» пользователя имеется 11 полей, тогда как в таблице «Клиенты» другой базы данных из этих 11 полей имеется только 9. Можно использовать запрос на добавление только тех данных, которые находятся в соответствующих друг другу полях, а все остальные игнорировать.

Следует обратить внимание на то, что нельзя изменить данные в отдельных полях имеющихся записей с помощью запросов на добавление. Для этого используются запросы на обновление, а при помощи запросов на добавление можно только добавлять целые строки данных.

С помощью запроса на обновление можно добавлять, изменять или удалять данные в одной или нескольких записях. Запросы на обновление можно рассматривать как разновидность диалогового окна Поиск и замена с более широкими возможностями.

Следует ввести условие отбора (приблизительный аналог образца поиска) и условие обновления (приблизительный аналог образца замены). В отличие от диалогового окна Поиск и замена запрос на обновление может принимать несколько условий и позволяет обновить большое число записей за один раз, а также изменить записи сразу в нескольких таблицах.

Необходимо помнить приведенные ниже правила.

· Запрос на обновление нельзя использовать для добавления новых записей в таблицу, но можно менять имеющиеся пустые значения на определенные значения. Для добавления новых записей в одну или несколько таблиц используйте запрос на добавление.

· Запрос на обновление нельзя использовать для удаления записей целиком (строк) из таблицы, но можно менять имеющиеся непустые значения на пустые. Для удаления записей целиком (процесс, удаляющий также значение первичного ключа) следует использовать запрос на удаление.

· С помощью запросов на обновление можно изменять все данные в наборе записей.

Кроме того, нельзя выполнить запрос на обновление для следующих типов полей в таблице:

· Поля, содержащие результаты вычислений. Значения вычисляемых полей не хранятся в таблице постоянно. Они существуют только во временной памяти компьютера, после того как будут вычислены. Поскольку для вычисляемых полей не предусмотрено место постоянного хранения данных, их невозможно обновить.

· Поля, источником записей для которых служат итоговые запросы или перекрестные запросы.

· Поля с типом данных «Счетчик». Значения в полях с типом данных «Счетчик» изменяются только при добавлении записи в таблицу.

· Поля в запросах на объединение.

· Поля в запросах на уникальные значения и запросах на уникальные записи — запросах, возвращающих неповторяющиеся значения или записи. Это правило применимо при использовании запроса на обновление, а также при обновлении данных вручную путем ввода значений в форму или таблицу.

· Первичные ключи, участвующие в отношениях между таблицами, кроме тех случаев, когда эти отношения были настроены на автоматическое выполнение каскадного обновления через поля ключа и любые связанные поля. При каскадном обновлении автоматически обновляются любые значения внешнего ключа в дочерней таблице (таблица на стороне «многие» отношения «один-ко-многим») при изменении значения первичного ключа в родительской таблице (таблица на стороне «один» отношения «один-ко-многим»).

Запрос на создание таблицы получает данные из одной или нескольких таблиц, а затем помещает набор результатов в новую таблицу. Эта новая таблица может располагаться в базе данных, открытой в данный момент, или создается в другой базе данных.

Обычно запрос на создание таблицы создается, когда необходимо скопировать данные или поместить их в архив. Предположим, что существует таблица (или несколько таблиц) с данными по продажам за прошедшие периоды, и эти данные нужно использовать в отчетах. Эти данные не изменяются, поскольку все сделки были совершены, по меньшей мере, день назад.

Многократное выполнение запроса для извлечения данных требует значительного времени, особенно если запрос сложный, а хранилище данных имеет большой объем. Загрузив данные в отдельную таблицу и используя эту таблицу в качестве источника данных, можно снизить нагрузку и получить удобный архив данных. В процессе работы следует помнить, что данные в новой таблице являются копией исходных данных в определенный момент времени; они не имеют связи и не подключены к исходной таблице (или таблицам).

Процесс создания запроса на создание таблицы состоит из следующих основных этапов.

· Включите содержимое базы данных, если она не подписана или не находится в надежном расположении. Иначе нельзя будет запускать запросы на изменение (запросы на добавление, на обновление или на создание таблицы).

· В режиме Конструктора запроса создайте запрос на выборку, а затем изменяйте этот запрос, пока он не будет возвращать нужные записи. Можно выбирать данные из нескольких таблиц и, фактически, денормализовать данные. Например, можно поместить данные о заказчиках, грузоотправителях и поставщиках в одну таблицу — это обычно не делается в производственной базе данных с правильно нормализованными таблицами. В запросе можно также использовать условия для более точной настройки или сужения набора результатов.

· Преобразуйте запрос на выборку в запрос на создание таблицы, выберите расположение для новой таблицы и затем запустите запрос, чтобы создать таблицу.

Не следует путать запрос на создание таблицы с запросами на обновление или добавление. Запрос на обновление используется, когда необходимо добавить или изменить данные в отдельных полях. Запрос на добавление используется, когда требуется добавить записи (строки) в набор записей в существующей таблице.