Искусство создания базы данных в Microsoft Office Access 2007
Шрифт:
Запросы, используемые для извлечения данных из таблиц и выполнения расчетов, называют запросами на выборку. Это пользовательский тип запросов.
Запросы, применяемые для создания и изменения содержания базовых таблиц, называют запросами на изменение. Эти запросы предназначены, прежде всего, для администратора базы данных, т.к. направлены на актуализацию данных и управление данными. Поэтому такие запросы называют также управляющими запросами.
На первый взгляд запросы на выборку схожи с сортировкой и фильтрацией. Однако это не совсем так. Запросы являются более мощным и гибким инструментом,
• достоинство команд сортировки и фильтрации в том, что они просты в применении и выполняются быстрее, чем запросы;
• первый недостаток сортировки и фильтрации: сохранить можно только последнюю установленную сортировку и последний использованный фильтр. Все другие сортировки и фильтры придется всякий раз определять заново. Исключение составляет расширенный фильтр, который, по сути, является запросом. Между тем любой запрос можно сохранить и многократно исполнять по мере необходимости;
• другой недостаток сортировки и фильтрации: работа только с одной открытой таблицей. Запрос же может извлекать данные из нескольких таблиц и запросов, и при этом не требует, чтобы они были открыты.
Запрос и базовая таблица, из которой он извлекает данные, связаны между собой. Если меняются данные в таблице, то модифицируется соответствующим образом результат выполнения запроса. И, наоборот, при корректировке данных в результатах запроса записи в базовой таблице также меняются.
Примечание. Следует знать, что в базе данных хранятся не результаты выполнения запросов, а лишь предписания описывающие, какую информацию надо извлечь из таблиц и какие вычисления необходимо осуществить. Запросы следует воспринимать как виртуальные таблицы базы данных. Чтобы подчеркнуть различие таблиц и запросов, применительно к обычным таблицам базы данных применяют термин «базовая таблица».
Основные типы запросов
В Access существуют следующие типы запросов на выборку:
• однотабличный запрос. Выбор подмножества данных из одной таблицы (выбор полей и выбор записей, удовлетворяющих заданным условиям);
• многотабличный запрос. Выбор данных из нескольких связанных между собой таблиц;
• запрос с параметром. Выбор записей по заданному значению некоторого поля (параметра). Это значение запрашивается с экрана у пользователя. Параметров может быть насколько;
• итоговый запрос. В таком запросе выполняются статистические расчеты;
• запрос с вычислениями. Это запрос, в котором определены поля, значения которых вычисляются на основе значений других полей таблиц;
• перекрестный запрос. Используется для просмотра, но не изменения данных. Результаты представляются в формате, подобном электронной таблице, что упрощает сравнение и анализ данных;
• запрос на выборку повторяющихся записей. Отбор записей-дубликатов в таблице;
• запрос на выборку записей без подчиненных. Выбор записей таблицы, которые не связаны с другой таблицей.
Примечание. В запросах на выборку данные могут извлекаться не только из базовых таблиц, но и из других запросов. Другими словами, источником записей запроса могут выступать как базовые, так и виртуальные таблицы базы данных.
В Access возможны такие типы запросов на изменение:
• запрос
• запрос на обновление. Разновидность диалогового окна Поиск и замена с более широкими возможностями (несколько условий отбора и изменение записей сразу в одной, двух и более таблицах);
• запрос на добавление. Позволяет добавить набор записей из одной или нескольких таблиц в одну или несколько результирующих таблиц;
• запрос на удаление. Удаление набора записей целиком из одной или нескольких таблиц.
Средства создания запроса
Существуют три инструмента создания запроса: Мастер запросов, Конструктор запросов, программирование на SQL. Любой запрос, построенный с помощью Мастера запросов, может быть доработан в Конструкторе запросов и с помощью SQL. Возможен переход из Конструктора запросов в окно SQL и наоборот.
Мастер запросов позволяет быстро построить определенные типы запросов:
• простой запрос (однотабличный или многотабличный запрос, в котором осуществляется вычисление статистических функций);
• перекрестный запрос;
• запрос на выборку повторяющихся записей;
• запрос на выборку записей без подчиненных.
Чтобы создать запрос при помощи Мастера запросов нужно поступить так.
1. Открыть базу данных.
2. Перейти на вкладку Создание и в ней на группу команд Другие.
3. Щелкнуть команду Мастер запросов. Откроется диалоговое окно Новый запрос.
4. Выбрать тип запроса и следовать указаниям мастера.
5. Задать имя запроса, под которым следует его сохранить.
Универсальным средством создания и модификации запросов в Access является Конструктор запросов. Конструктор запросов позволяет создавать все типы запросов. Запросы в нем формулируются на языке QBE – языке запросов по образцу.
Примечание. QBE (Quere By Example) – непроцедурный язык манипулирования данными, с помощью которого пользователь указывает, какие данные необходимо отобразить на экране, не уточняя процедуру их формирования. Был разработан отделением IBM Research в 1977 году и задуман как средство, облегчающее работу неспециалистов. В настоящее время реализован практически во всех реляционных СУБД. В Access всякий QBE-запрос автоматически преобразуется в предложения структурированного языка запросов SQL (Structured Query Language). Язык SQL является также непроцедурным языком манипулирования данными, но уровнем ниже, чем QBE. Первый стандарт языка SQL вышел в 1987 году. Автором SQL считается математик Э. Кодд – сотрудник фирмы IBM.
Для вызова Конструктора запросов следует осуществить следующие шаги.
1. Открыть базу данных.
2. Найти вкладку Создание и в ней группу команд Другие.
3. Щелкнуть команду Конструктор запросов. Откроется бланк конструктора и диалоговое окно Добавление таблицы.
4. Указать в окне Добавление таблицы имена таблиц, из которых необходимо извлечь данные. Заметим, что в данном окне доступны как базовые таблицы, так и запросы. Это позволяет решить проблему вложенных запросов.