Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
153
Добавлен:
02.05.2014
Размер:
1.63 Mб
Скачать

3.2.4. Работа с запросами

Вопросы, формулируемые по отношению к базе данных, называют­ся запросами.

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

В Access, как и во многих современных СУБД, для формирования запросов используется "Запрос по образцу" (Query by Example или QBE).

Запрос по образцу - это таблично ориентированный язык для выбора данных из одной или нескольких таблиц.

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

На экране появится диалоговое окно Новый запрос, предназна­ченное для выбора способа построения запроса. Могут быть использованы следующие способы создания запросов:

Конструктор – самостоятельное создание нового запроса;

Простой запрос – создание запроса на выборку из определенных полей;

Перекрестный запрос – создание запроса, выводящего данные в ком­пактной форме, подобном формату электронной таблицы;

Повторяющиеся записи – создание запроса на поиск повторяющихся записей в простой таблице или запросе;

Записи без подчиненных – создание запроса на поиск записей, кото­рым не соответствует ни одна запись в подчиненной таблице.

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

Мастер Перекрестного запроса работает тоже по шагам, создавая перекрестный запрос. Такой запрос – это операция построения таблицы для вычисления итоговых значений на основе существующей таблицы или запроса. Перекрестный запрос создается в предположении, что исходная таблица содержит необходимые данные для формирования заголовков строк и столбцов.

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

Конструктор запросов является основным средством по работе с запросами, поэтому рассмотрим работу с ним.

.Для запуска его необходимо выбрать значение Конструктор в окне Новый запрос и на­жать на кнопку ОК.

В результате на экране появятся два окна: окно конструктора запросов Запрос на выборку и окно выбора таблиц Добавление табли­цы.

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

В окне конструктора запросов появится небольшое окно с заго­ловком таблицы и списком ее полей.

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

Имя поля (и даже несколько маркированных имен) можно пере­нести в бланк запроса методом Drag and Drop.

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

Если больше никаких условий не требуется, то создание запроса можно завершить, закрыв окно конструктора запросов и присвоив зап­росу имя, в появившемся окне Сохранение .

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

В таблице с результатами выполнения запроса данные обрабаты­ваются так же, как и в обыкновенной таблице. При этом можно ис­пользовать команды как из контекстного меню окна запроса, так и из меню Формат.

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

Сортировка данных в запросе. В Access существует несколько способов сортировки данных, отобранных посредством запроса. Быстро выполнить сортировку в ок­не запроса позволяют команда Сортировка из меню Записи, а также кнопки По возрастанию и По убыванию панели инструментов. Для это­го следует включить в запрос поля таблицы, по которым будут рас­сортированы записи, и определить способ сортировки - по возраста­нию или по убыванию. Данные можно упорядочить по алфавиту, а так­же по убыванию или возрастанию. При алфавитно-цифровой сортировке по возрастанию данные сортируются в таком порядке: сначала - эле­менты, начинающиеся со знаков пунктуации или специальных симво­лов, затем - элементы, начинающиеся с цифр, а затем - элементы, которые начинаются с букв.

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

Чтобы ускорить сортировку, следует размещать рядом поля, данные которых необходимо рассортировать.

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

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

Применение специальных критериев. До сих пор мы рассматривали запросы, выполняющие отбор полей таблицы. При создании запроса можно задать дополнительные крите­рии, вследствие чего он будет осуществлять отбор только нужных сведений в каждом поле. Для формирования такого запроса необходимо в QBE-области ввести значение в ячейку, расположенную на пересе­чении строки Условия отбора и колонки с нужным именем.

Критерии, устанавливаемые в QBE-области, необходимо заклю­чать в кавычки. Если Access идентифицирует введенные символы как критерий отбора, то заключает их в кавычки автоматически, а если нет, то сообщает о синтаксической ошибке. Программа Access не мо­жет распознать как критерий комбинацию символов и знаков подста­новки.

В запросах символы подстановки * и ? применяются так же, как и во всех приложениях Microsoft Office. Символ звездочки заменяет любое количество букв или цифр, а знак вопроса - только один символ.

Все строки в QBE-области, расположенные под строкой Условия отбора, служат для задания критериев отбора. Таким образом, для одного поля можно определить два, три и более критериев отбора данных. По умолчанию все элементы критерия объединяются операто­ром ИЛИ. Это значит, что запрос выберет те записи, которые соот­ветствуют хотя бы одному критерию.

Чтобы объединить несколько условий отбора оператором И, сле­дует привести их в одной строке. Например, если необходимо выб­рать записи из таблицы Зарплата, в которых указаны оклады от 1000 до 1500, в столбце Оклад надлежит ввести следующий критерий: Bet­ween 1000 and 1500. Другой формой записи этого критерия является выражение >1000 And <1500.

В результате будут отобраны только те записи, которые удов­летворяют обоим условиям, т.е. оклады, значения которых находятся в интервале от 1000 до 1500.

Если необходимо отобрать несколько диапазонов значений кри­терий для каждого диапазона следует указать в отдельной строке.

Исключить группу данных из состава анализируемых запросом записей (например, оклад 1100) позволяет следующий критерий: Not 1100. Другая форма записи этого критерия: <>1100.

В этом случае можно не использовать кавычки.

Операторы And и Or применяются как отдельно, так и в комби­нации. Следует помнить, что условия, связанные оператором And, выполняются раньше условий, объединенных оператором Or.

Вычисления в запросе. Запросы становятся еще эффективнее, если в них включены вы­числения. Над полученными в результате выполнения запроса данными можно провести вычисления, используя предоставляемые Access функ­ции.

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

Модель реляционной базы данных работает правильно лишь в том слу­чае, если корректно установлено отношение между полями таблиц базы. Обя­зательным условием установки связи между таблицами явля­ется наличие двух одинаковых полей.

Для установки связи между полями таблиц необходимо выполнить следующие действия:

- Закрыть все таблицы, между которыми существует связь.

- Активизировать команду Схема данных в меню Сервис или на­жать соответствующую кнопку на панели инструментов.

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

- Выбрать нужную таблицу в списке, расположенном на вкладке Таблицы или Таблицы и запросы, и нажать кнопку Добавить. Затем до­бавить другую таблицу и нажать кнопку Закрыть. В окне Схема дан­ных появятся два небольших окна со списками полей выбранных таблиц.

- С помощью мыши перетащить нужное поле из списка по­лей первой таблицы к соответствующему полю второй таблицы. Ключевое поле, принадлежащее главной таблице выделяется в списке жирным шрифтом.

- На экране появится диалоговое окно Связи, в котором отобра­жаются имена связываемых полей обеих таблиц.

При необходимости их можно изменить.

- Активизировать опцию Обеспечение целостности данных. При этом будет установлено отношение One-To-Many (один ко многим), что отразится в области Тип отношения. Это означает, что одной за­писи главной таблицы могут быть поставлены в соответствие несколько записей подчиненной таблицы. Такое отношение является наиболее распространенным в реляционных базах данных.

- В заключение нажать кнопку Создать. В окне Связи программа графически обозначит связь между полями таблиц.

Запрос для таблиц, между которыми установлена связь, созда­ется следующим образом:

- Открыть окно конструктора запросов, нажав кнопку Создать на вкладке Запросы окна базы данных.

- Выполнить двойной щелчок на имени главной таблицы, в диалоговом окне Запрос на выборку, вследствие чего она бу­дет помещена в QBE-область.

- Повторить эту операцию для подчиненной таблицы.

- Закрыть диалоговое окно Добавление таблицы посредством кнопки Закрыть.

- Включить в запрос нужные поля.

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

Соседние файлы в предмете Базы данных