Создание запросов в БД. Создание запросов


Создание запросов

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

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

В Access можно создавать следующие типы запросов:

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

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

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

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

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

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

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

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

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

Для создания нового запроса надо в окне базы данных выбрать вкладку Запросы и щелкнуть по кнопке <Создать>. Откроется окно «Новый запрос».

В окне вы должны выбрать один из пяти пунктов:

  • Конструктор,

  • Простой запрос.

  • Перекрестный запрос,

  • Повторяющиеся записи.

  • Записи без подчиненных.

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

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

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

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

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

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

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

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

  1. на физическом носителе информации (обычно это жесткий диск) требуется меньший объем пространства;

  2. запрос может использовать обновленные версии любых записей, измененных со времени последнего запуска запроса.

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

Для сохранения запроса следует выполнить следующие действия. Выполните коман­ду Файл, Сохранить или щелкните по кнопке <Сохранить> на панели инструментов. Если вы впервые сохраняете запрос, введите новое имя запроса в диалоговом окне «Сохране­ние».

Запрос лучше всего создавать с помощью Конструктора (язык QBE). Для этого есть специальный значок в окне База данных. Он называется Создание запроса в режиме конструктора и открывает специальный окно в режиме языка QBE (см. рисунок 1). Окно состоит из двух частей. В верхней отображается структура таблиц, к которым запрос адресован, а нижняя область разбита на столбцы – по одному столбцу на каждое поле будущей результирующей таблицы.

Рис. 1 Окно создания запрос в режиме QBE

Памятка «Условия отбора»

Оператор

Описание

? Улица

Знак вопроса заменяет один символ

43 место*

Звездочка заменяет несколько символов, идущих после определенного слова

<100

Значение меньше 100

>=1

Значение больше или равно 1

<>"Москва"

Все города кроме Москвы

Between 1 and 10

Значения между 1 и 10

Is Null Is Not Null

Находит пустые записи или находит все записи кроме пустых

Like "a*"

Все слова, начинающиеся с буквы а

>0 And <=10

Все значения большие 0 и меньшие 10

"Bob" Or "Jane"

Значения равные или Bob, или Jane

studfiles.net

Создание запросов

Запрос определяет группу записей, с которыми вы хотите работать. Его можно сделать, например, в такой форме: "Предъявите мне имена покупателей, проживающих в таком-то городе, сделавших заказы на такую-то сумму". Ответом будет таблица с временным набором данных, которая называется динамическим набором. Записи динамического набора могут включать поля из одной или нескольких таблиц (рис. 1).

Рис. 1. Динамический набор данных из разных таблиц

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

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

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

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

Запросы по образцу.

В окне Запрос на выборку (рис. 2) вы конструируете запрос с помощью средства, именуемого запросом по образцу (Query By Example, QBE-запрос). При этом вы формируете запросы, перетаскивая поля из верхней части окна Запрос на выборку в бланк запроса по образцу, и размещаете поля в бланке именно в той последовательности, в какой хотите видеть их в табличном представлении. Иными словами, вы используете бланк QBE, чтобы указать MS Access, какими вы хотели бы видеть результаты вашего запроса. Работа с бланком запроса напоминает создание фильтра, но при формировании запроса вы можете извлекать данные сразу из нескольких таблиц.

После выбора полей вы используете бланк QBE-запроса для дополнительной настройки запроса на выборку записей, которые вас интересуют (рис. 2).

Рис. 2. Настройка QBE-запроса.

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

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

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

Создание и сохранение запроса.

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

Предположим, вам нужны данные о покупателях, проживающих в Липецке и Саратове – их номера, имена и рейтинги. Эта информация хранится в таблице Покупатели.

Выполните следующие действия:

1

На вкладке «Создание» выберите объект «Конструктор запросов».

2

Щелкните по нему.

3

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

4

Дважды щелкните на строке с именем таблицы Покупатели, или выберите ее и нажмите кнопку Добавить, после чего щелкните на кнопке Закрыть.

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

Рис. 3. Окно Добавление таблицы со списком таблиц базы данных для формирования запроса.

Рис. 4. Список полей таблицы Покупатели.

Теперь надо включить в запрос поля:

1

Перетащите имя поля Номер из списка полей в первую клетку строки Поле бланка запроса по образцу, либо щелкните на первой клетке и выберите в списке поле Номер и нажмите

2

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

Сохраните запрос и дайте ему имя:

1

Выберите команду меню Файл–Сохранить.

2

В появившемся диалоге Сохранение введите имя запроса Покупатели в Липецке и Саратове щелкните на кнопке OK. Новое имя запроса появится в строке заголовка окна запроса. Кроме того, MS Access добавит имя этого запроса в список ярлычка Запросы в окне База данных для дальнейшего использования.

3

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

Установка условия отбора нужных записей.

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

Для установки условия отбора вам может понадобиться выражение, по которому MS Access будет выбирать записи.

Нам нужно получить список покупателей из Липецка и Саратова, поэтому условие отбора должно быть задано для столбца Город.

Для задания этого условия выполните следующие действия:

1

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

2

В бланке запроса щелкните мышью в ячейку строки Условие отбора под полем Город.

3

Напечатайте Липецк и нажмите клавишу Enter. MS Access автоматически поставит кавычки по обеим сторонам введенного слова, указывая на его принадлежность к текстовому типу данных (рис. 5). Таким образом, вы задали критерий для поиска и отбора данных в таблице Покупатели.

4

Для начала выполнения Запроса по заданному критерию нажмите кнопку  Результатом выполнения запроса по этому условию (критерию) отбора  станет таблица только с двумя покупателями из Липецка.

5

Снова перейдите в режим Конструктора.

Условие отбора может одержать множество критериев для поиска и отбора данных. В бланке Запроса ниже строки Условие отбора имеется строка или: в которой можно задать дополнительный критерий отбора записей.

Зададим следующий критерий для отбора: найти покупателей из г. Саратов. Выполните следующее. В клетке под словом "Липецк" напечатайте Саратов и нажмите клавишу Enter

6

Дайте команду Запуск. Заданному условию соответствует найденное число покупателей: два из Саратова и два из Липецка.

Рис. 5. Бланк Запроса с одним критерием отбора записей

Сортировка в режиме запроса

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

1

Перейдите в Режим Конструктора, чтобы внести дополнения в бланк Запроса.

2

Щелкните в ячейке строки Сортировка в столбце Имя

3

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

4

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

Создание запроса на основе связанных таблиц

Теперь создадим Запрос на основе связанных таблиц: "Какие покупатели и у каких продавцов сделали заказы в течение с марта по май 1996 года?"

В результате Запроса на экран должны выводиться Номера заказов, Имена покупателей, Стоимость заказов, Даты покупки заказов, Имена продавцов.

Для выполнения данного задания потребуются все три таблицы учебной базы данных – Заказы, Покупатели и Продавцы.

Создайте такой Запрос для этого выполните следующие действия:

1

Выберите вкладку Создать

2

Выберите Конструктор запросов

3

Добавьте все три таблицы

4

Покупатели и Продавцы появятся в окне Запрос-выборка

Выберите команду меню Файл–Сохранить

Присвойте запросу имя Информация о заказах и щелкните на кнопке ОК.

Перетащите из таблицы Заказы в бланк запроса по образцу следующие поля: Номер, Стоимость, Дата покупки.

Из таблицы Покупатели перетащите в бланк запроса поле Имя.

Из таблицы Продавцы перетащите в бланк запроса поле Имя (рис. 7).

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

Рис. 6. Существующие связи между таблицами

Рис. 7. Заполненный бланк запроса с включенной строкой Имя таблицы

Теперь надо задать условие отбора и просмотреть результаты. Для отбора заказов, сделанных с марта по май 2005 года включительно, вы можете воспользоваться выражением с использованием оператора Between...And (От...До), который выполняет выборку в период ОТ одной даты ДО другой даты включительно.

Задайте условие отбора:

1

В строке Условие отбора под полем Дата покупки напечатайте Between 1-03-05 And 31-05-05, либо >29-02-05 And <1-06-05, а затем нажмите клавишу Enter. Формат даты сразу же поменяется и появится символ #, окаймляющий обе даты

2

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

3

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

4

Сохраните запрос командой Файл–Сохранить и затем закройте запрос

Рис. 8. Вид бланка с увеличенной шириной столбца для условия отбора.

Создание запроса с параметром

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

1

Создайте запрос с помощью конструктора.

2

Перетащите из таблицы Покупатели в бланк запроса по образцу следующие поля: Имя, Рейтинг, Город.

3

В условие отбора для поля Город введите: =[] (квадратные скобки означают, что параметр будет вводится с клавиатуры).

4

Сделайте поле Город при просмотре запроса, для этого уберите галочку в строке Вывод на экран для поля Город (рис. 9).

5

Закройте окно конструктора запросов.

Рис. 9. Запрос с параметром

Работа с запросом с параметром:

1

Откройте запрос «Информация о покупателях» двойным щелчком мыши. При этом откроется окно ввода параметра

2

В строку ввода введите название города (например, Саратов) и нажмите кнопку ОК. Появится таблица, содержащая сведения о покупателях, проживающих в городе Саратове

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

studfiles.net

Создание запросов

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

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

В Access можно создавать следующие типы запросов:

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

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

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

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

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

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

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

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

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

Для создания нового запроса надо в окне базы данных выбрать вкладку Запросы и щелкнуть по кнопке <Создать>. Откроется окно «Новый запрос».

В окне вы должны выбрать один из пяти пунктов:

  • Конструктор,

  • Простой запрос.

  • Перекрестный запрос,

  • Повторяющиеся записи.

  • Записи без подчиненных.

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

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

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

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

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

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

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

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

  1. на физическом носителе информации (обычно это жесткий диск) требуется меньший объем пространства;

  2. запрос может использовать обновленные версии любых записей, измененных со времени последнего запуска запроса.

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

Для сохранения запроса следует выполнить следующие действия. Выполните коман­ду Файл, Сохранить или щелкните по кнопке <Сохранить> на панели инструментов. Если вы впервые сохраняете запрос, введите новое имя запроса в диалоговом окне «Сохране­ние».

Запрос лучше всего создавать с помощью Конструктора (язык QBE). Для этого есть специальный значок в окне База данных. Он называется Создание запроса в режиме конструктора и открывает специальный окно в режиме языка QBE (см. рисунок 1). Окно состоит из двух частей. В верхней отображается структура таблиц, к которым запрос адресован, а нижняя область разбита на столбцы – по одному столбцу на каждое поле будущей результирующей таблицы.

Рис. 1 Окно создания запрос в режиме QBE

Памятка «Условия отбора»

Оператор

Описание

? Улица

Знак вопроса заменяет один символ

43 место*

Звездочка заменяет несколько символов, идущих после определенного слова

<100

Значение меньше 100

>=1

Значение больше или равно 1

<>"Москва"

Все города кроме Москвы

Between 1 and 10

Значения между 1 и 10

Is Null Is Not Null

Находит пустые записи или находит все записи кроме пустых

Like "a*"

Все слова, начинающиеся с буквы а

>0 And <=10

Все значения большие 0 и меньшие 10

"Bob" Or "Jane"

Значения равные или Bob, или Jane

studfiles.net

Создание запросов

MS ACCESS №3

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

Создание запроса в режиме конструктора

Для создания простого запроса выполните следующие действия:

  1. В окне базы данных перейдите на вкладку “Запросы” и нажмите кнопку Создать.

  2. Выберите режим Конструктора и нажмите ОК.

  3. Откроется окно диалога “Добавление таблицы”, в котором выберите таблицу из которой будет выбираться нужная вам информация и нажмите кнопку Добавить. Закройте окно диалога.

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

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

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

  • Имя таблицы. Эта строка показывает вам, из какой таблицы выбрано данное поле.

  • Сортировка. В этой строке вы указываете тип сортировки информации, если она необходима.

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

  • Условие отбора. В этой строке вы вводите ограничения поиска, задавая определенные условия, которые принято называть критерием поиска.

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

Удаление полей из бланка запроса. Для удаления ненужного поля из запроса выделите столбец, нажав на область выбора, и нажмите кнопку Delete .

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

Запуск запроса. После того как запрос сформирован, нажмите кнопку Запуск на панели инструментов. Результат выполнения вашего запроса появится в режиме таблицы.

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

Построение более сложных условий выбора записей

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

  2. Условие неточного совпадения. В том случае, если вы не помните точного задания чисел или последовательности символов в качестве критерия поиска, можно использовать оператор неточного совпадения Like. Данный оператор позволяет найти требуемые записи, зная лишь приблизительное написание величины, и используется совместно с подстановочными символами.

Символ

Использование

Пример

Результат

*

Соответствует любому количеству букв, цифр или других символов.

Like “*55*”

“553-3486”, “123-5561” и “187-1355”

?

Соответствует любому текстовому символу

Like Снег?рев

Фамилия: “Снегирев” и “Снегерев”

[ ]

Соответствует любому одному сим­волу из заключенных в скобки

Like “[АС]*”

Имя: Артем, Алексей, Алла, Сергей, Света

!

Соответствует любому одному сим­волу, кроме заключенных в скобки

Like “[!А]*”

Имя: Борис, Николай, Мария, (и другие имена, не начинающие на А)

-

Соответствует любому символу из диапазона. Необходимо указывать этот диапазон по возрастанию (от А до Я, но не от Я до А)

Like “[Г-Л]*”

Фамилия: Голубев, Демин, Жуков, Иванов, Кузьмин, Леванов.

  1. Выбор записей по диапазону значений

Для задания диапазона значений в окне конструктора запросов используются операторы (больше), (не менее), (меньше), (не более) и Between…And, которые вы можете использовать с текстовыми и цифровыми полями, а также полями дат.

Пример 1: Получить список клиентов, чей кредит превышает 100000.

Условие отбора – “100000”.

Пример 2: Получить сведения обо всех заказах с 1 января по 31 марта 1999 года.

Условие отбора - Between #01.01.99# And #31.03.99#

Обратите внимание, что в Access в условиях отбора значения даты необходимо выделять с обеих сторон символом #.

  1. Объединение критериев нескольких полей.

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

Для задания И-выражения вы должны просто задать условие в строке Условие отбора для каждого из полей, образующих критерий.

При задании ИЛИ-выражения каждое из условий выбора, образующих критерий, должно располагаться на отдельной строке бланка запроса. Например, для выбора списка клиентов из Киева и Минска нужно просто расположить первое условие в строке Условие выбора, а второе в строке Или.

  1. Операторы Or и And

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

studfiles.net

Создание запросов

MS ACCESS №3

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

Создание запроса в режиме конструктора

Для создания простого запроса выполните следующие действия:

  1. В окне базы данных перейдите на вкладку “Запросы” и нажмите кнопку Создать.

  2. Выберите режим Конструктора и нажмите ОК.

  3. Откроется окно диалога “Добавление таблицы”, в котором выберите таблицу из которой будет выбираться нужная вам информация и нажмите кнопку Добавить. Закройте окно диалога.

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

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

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

  • Имя таблицы. Эта строка показывает вам, из какой таблицы выбрано данное поле.

  • Сортировка. В этой строке вы указываете тип сортировки информации, если она необходима.

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

  • Условие отбора. В этой строке вы вводите ограничения поиска, задавая определенные условия, которые принято называть критерием поиска.

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

Удаление полей из бланка запроса. Для удаления ненужного поля из запроса выделите столбец, нажав на область выбора, и нажмите кнопкуDelete.

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

Запуск запроса. После того как запрос сформирован, нажмите кнопкуЗапускна панели инструментов. Результат выполнения вашего запроса появится в режиме таблицы.

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

Построение более сложных условий выбора записей

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

  2. Условие неточного совпадения.В том случае, если вы не помните точного задания чисел или последовательности символов в качестве критерия поиска, можно использовать оператор неточного совпаденияLike. Данный оператор позволяет найти требуемые записи, зная лишь приблизительное написание величины, и используется совместно с подстановочными символами.

Символ

Использование

Пример

Результат

*

Соответствует любому количеству букв, цифр или других символов.

Like “*55*”

“553-3486”, “123-5561” и “187-1355”

?

Соответствует любому текстовому символу

Like Снег?рев

Фамилия: “Снегирев” и “Снегерев”

[ ]

Соответствует любому одному сим­волу из заключенных в скобки

Like “[АС]*”

Имя: Артем, Алексей, Алла, Сергей, Света

!

Соответствует любому одному сим­волу, кроме заключенных в скобки

Like “[!А]*”

Имя: Борис, Николай, Мария, (и другие имена, не начинающие на А)

-

Соответствует любому символу из диапазона. Необходимо указывать этот диапазон по возрастанию (от А до Я, но не от Я до А)

Like “[Г-Л]*”

Фамилия: Голубев, Демин, Жуков, Иванов, Кузьмин, Леванов.

  1. Выбор записей по диапазону значений

Для задания диапазона значений в окне конструктора запросов используются операторы  (больше),(не менее), (меньше), (не более) иBetween…And, которые вы можете использовать с текстовыми и цифровыми полями, а также полями дат.

Пример 1: Получить список клиентов, чей кредит превышает 100000.

Условие отбора – “100000”.

Пример 2:Получить сведения обо всех заказах с 1 января по 31 марта 1999 года.

Условие отбора - Between#01.01.99#And#31.03.99#

Обратите внимание, что в Access в условиях отбора значения даты необходимо выделять с обеих сторон символом #.

  1. Объединение критериев нескольких полей.

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

Для задания И-выражения вы должны просто задать условие в строке Условие отборадля каждого из полей, образующих критерий.

При задании ИЛИ-выражения каждое из условий выбора, образующих критерий, должно располагаться на отдельной строке бланка запроса. Например, для выбора списка клиентов из Киева и Минска нужно просто расположить первое условие в строке Условие выбора, а второе в строкеИли.

  1. Операторы Or и And

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

studfiles.net

Видео: создание запросов с несколькими источниками данных

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

Начало работы с соединениями

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

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

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

Внутренние соединения

Большинство соединений являются внутренними. Сведения о внешних соединениях см. в статье Создание запросов с внешними соединениями.

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

Самосоединения

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

Предположим, у вас есть таблица со всеми сотрудниками вашей организации, включая руководителей. В этой таблице есть поле "Начальник", в которой указан идентификатор руководителя каждого сотрудника.

ИД

Фамилия

Имя

Начальник

1

Коновалова

Светлана

5

2

Авдеев

Григорий

3

Лебедева

Анастасия

10

4

Сазонова

Мария

5

5

Белых

Николай

2

6

Бутусов

Василий

10

7

Воронков

Иван

10

8

Матвеева

Елена

10

9

Белякова

Дарья

5

10

Покровская

Регина

3

Чтобы найти имя начальника какого-либо сотрудника, нужно сначала найти нужного работника в таблице, а затем — идентификатор руководителя в столбце "Начальник". После этого начальник ищется в той же таблице по идентификатору. Например, Светлана подотчетна сотруднику с идентификатором "5". Это Николай Белых.

Чтобы автоматизировать задачу, вы можете дважды добавить таблицу с сотрудниками в запрос, а затем создать самосоединение. При втором добавлении источника данных Access присвоит имени второго экземпляра окончание "_1". Например, при повторном добавлении таблицы "Сотрудники" ее второй экземпляр будет называться "Сотрудники_1". Для отображения имен руководителей каждого сотрудника следует создать соединение между полем "Начальник" из таблицы "Сотрудники" и полем "ИД" из таблицы "Сотрудники_1".

1. Добавление источников данных

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

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

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

2. источники данных, связанные с соединение

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

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

3. выполните запрос

  • Создайте запрос, как обычно: добавьте выходные поля и необходимые условия, а затем выполните или сохраните запрос. Инструкции см. в статье Создание простых запросов.

Вам нужны дополнительные возможности?

Обучение работе с Excel

Обучение работе с Outlook

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

Кроме того, вы научитесь использовать соединения, чтобы устанавливать соответствие между несколькими источниками,

и узнаете о различных типах доступных соединений.

Создание запроса на выборку из нескольких источников данных практически ничем не отличается от составления запроса для одного источника.

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

Но есть определенные нюансы.

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

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

Для этого используется так называемое соединение.

Соединение сравнивает данные в двух общих полях из каждого источника.

Соединение отвечает за соответствие данных в каждом поле.

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

Другой тип соединения возвращает ВСЕ данные из одного поля и только СООТВЕТСТВУЮЩИЕ данные из другого.

В этом примере запрос покажет, в каких заказах нет определенного товара.

Когда вы создали связи между таблицами, Access сформировал СОЕДИНЕНИЕ для каждой связи.

Access использует связи в качестве ШАБЛОНОВ для соединений, поэтому чаще всего соединенные поля будут первичными и внешними ключами.

Однако это необязательно. Вы также можете соединять несвязанные источники.

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

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

Кроме того, обратите внимание, что мы не добавили соединенные поля в бланк. Это и не нужно, так как Access добавляет их в фоновом режиме.

Можно выполнить запрос и получить результат.

Теперь более подробно рассмотрим соединения и обратим внимание на несколько ключевых моментов.

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

Эти параметры определяют тип соединения в запросе. Это наиболее распространенные типы соединений.

Этот параметр создает внутреннее соединение. Это тип соединения, который возвращает совпадающие данные из ОБЕИХ таблиц.

Access создает его при формировании связи.

Второй параметр создает левое внешнее соединение, т. е. запрос возвращает ВСЕ данные из таблицы слева и только СООТВЕТСТВУЮЩИЕ данные из другой таблицы.

Третий параметр создает ПРАВОЕ внешнее соединение, и вы уже, наверное, догадались, что это значит.

Запрос возвращает ВСЕ данные из таблицы справа и только СООТВЕТСТВУЮЩИЕ данные из другой таблицы.

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

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

Важно не забывать, что связи и соединения — это не одно и то же.

СВЯЗЬ — это набор правил, управляющий целостностью данных, т. е. способами их добавления и удаления.

СОЕДИНЕНИЕ определяет, как ваш запрос сопоставляет данные.

Однако иногда эти понятия непросто различить.

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

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

Кроме того, вы можете добавить соединения, если связи даже не существуют.

Например, вы можете соединить поле таблицы с полем запроса, если в этих полях содержится совпадающий или сопоставимый тип данных.

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

support.office.com

Создание запросов в БД - Базы данных

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

Назначение и виды запросов

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

С помощью запроса можно выполнить следующие виды обработки данных:

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

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

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

В Access может быть создано несколько видов запроса.

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

Создание запроса

Лучшим способом создания запроса является использование графического конструктора — одного из наиболее мощных средств Access. Основные принципы конструирования различных запросов заложены в технике конструирования запроса на выборку, являющегося основой всех видов запроса.

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

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

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

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

Таблица в режиме таблицы

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

Для выполнения необходимых действий при создании запросов используются команды меню или панель инструментов Конструктор запросов. Окно конструктора запросов разделено на две панели. Верхняя панель содержит схему данных запроса, которая включает выбранные поля данного запроса таблицы. Таблицы представлены списками полей. Нижняя панель является бланком запроса по образцу – QBE, который необходимо заполнить.

Схема данных запроса

В окне конструктора запроса отображаются выбранные таблицы со списком полей и одно-многозначные связи между ними, имеющиеся в схеме БД. Первая строка в списке полей, отмеченная звездочкой (*), обозначает все множество полей таблицы. Кроме того, если таблицы имеют поля с одинаковыми именами и типами данных, Access автоматически устанавливает связи для объединения таких таблиц, даже когда связи не были установлены в схеме данных. Пользователь может самостоятельно установить не установленные автоматически связи, переместив с помощью мыши, задействованные в связи поля из одного списка полей в другой.

При использовании в запросе других запросов или таблиц, не представленных в схеме данных базы, с ними также могут быть установлены связи-объединения.

Бланк запроса по образцу

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

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

При заполнении бланка запроса:

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

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

Поля бланка запроса

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

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

Модификация запроса

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

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

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

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

itteach.ru