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

Обновлено: 27.04.2024

Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.

Обращаем Ваше внимание, что c 1 сентября 2022 года вступают в силу новые федеральные государственные стандарты (ФГОС) начального общего образования (НОО) №286 и основного общего образования (ООО) №287. Теперь требования к преподаванию каждого предмета сформулированы предельно четко: прописано, каких конкретных результатов должны достичь ученики. Упор делается на практические навыки и их применение в жизни.

Мы подготовили 2 курса по обновлённым ФГОС, которые помогут Вам разобраться во всех тонкостях и успешно применять их в работе. Только до 30 июня Вы можете пройти дистанционное обучение со скидкой 40% и получить удостоверение.

Столичный центр образовательных технологий г. Москва

Получите квалификацию учитель математики за 2 месяца

от 3 170 руб. 1900 руб.

Количество часов 300 ч. / 600 ч.

Успеть записаться со скидкой

Форма обучения дистанционная

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Саратовский государственный технический университет

Балаковский институт техники, технологии и управления

создание ЗапросОВ НА ВЫБОРКУ

Методические указания к выполнению лабораторной работы

по дисциплине «Информационное обеспечение систем управления»

для студентов специальности 210100

очной и заочной форм обучения

редакционно-издательским советом

Балаковского института техники,

технологии и управления

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

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

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

1. В окне базы данных выбрать вкладку Создание и в группе Другие щелкнуть на кнопке Конструктор запросов.

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

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

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

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

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

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

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

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

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

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

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


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

Сохранение запроса. Созданный запрос можно использовать в дальнейшем. Для этого вы должны присвоить ему имя и сохранить его. Чтобы сохранить запрос щелкните на кнопке Сохранить панели быстрого доступа. В открывшемся окне Сохранение ввести имя нового запроса и щелкнуть на кнопке ОК.

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

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

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

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

Если вы хотите узнать больше о принципах работы запросов на примере базы данных Northwind, ознакомьтесь со статьей Общие сведения о запросах.

В этой статье

Общие сведения

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

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

Преимущества запросов

Запрос позволяет выполнять перечисленные ниже задачи.

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

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

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

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

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

Основные этапы создания запроса на выборку

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

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

Укажите поля из источников данных, которые хотите включить в результаты.

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

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

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

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

Подготовка

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

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

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

На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов.

В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.

Теперь добавьте поля. Вы можете добавить до 255 полей из 32 таблиц или запросов.

Для каждого поля выполните два указанных ниже действия.

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

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

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

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

Выполните одно из указанных ниже действий.

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

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

В диалоговом окне Итоги укажите необходимые поля и типы итоговых данных. В списке будут доступны только числовые поля.

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

Sum — запрос вернет сумму всех значений, указанных в поле.

Avg — запрос вернет среднее значение поля.

Min — запрос вернет минимальное значение, указанное в поле.

Max — запрос вернет максимальное значение, указанное в поле.

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

Нажмите ОК, чтобы закрыть диалоговое окно Итоги.

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

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

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

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

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

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

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

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

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

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

На вкладке Создание в группе Другое нажмите кнопку Конструктор запросов.

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

Автоматическое соединение

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

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

Если приложение Access при добавлении источников данных автоматически создало соединения правильных типов, вы можете перейти к действию 3 (добавление выводимых полей).

Повторное использование одного источника данных

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

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

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

Если у источников данных, которые вы добавляете в запрос, уже есть связи, Access автоматически создает внутреннее присоединение для каждой связи. Если целостность данных, access также отображает "1" над линией связи, чтобы показать, какая таблица находится на стороне "один" отношение "один-ко-многим", и символ бесконечности(∞),чтобы показать, какая таблица находится на стороне "многие".

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

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

Добавление соединения

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

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

Изменение соединения

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

Откроется диалоговое окно Параметры соединения.

Ознакомьтесь с тремя вариантами в диалоговом окне Параметры соединения.

Выберите нужный вариант и нажмите кнопку ОК.

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

Действие 3. Добавьте выводимые поля

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

Для этого перетащите поле из источника в верхней области окна конструктора запросов вниз в строку Поле бланка запроса (в нижней части окна конструктора).

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

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

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

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

В пустом столбце таблицы запроса щелкните строку Поле правой кнопкой мыши и выберите в контекстном меню пункт Масштаб.

В поле Масштаб введите или вставьте необходимое выражение. Перед выражением введите имя, которое хотите использовать для результата выражения, а после него — двоеточие. Например, чтобы обозначить результат выражения как "Последнее обновление", введите перед ним фразу Последнее обновление:.

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

Действие 4. Укажите условия

Этот этап является необязательным.

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

Определение условий для выводимого поля

В таблице конструктора запросов в строке Условие отбора поля, значения в котором вы хотите отфильтровать, введите выражение, которому должны удовлетворять значения в поле для включения в результат. Например, чтобы включить в запрос только записи, в которых в поле "Город" указано "Рязань", введите Рязань в строке Условие отбора под этим полем.

Различные примеры выражений условий для запросов можно найти в статье Примеры условий запроса.

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

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

Условия для нескольких полей

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

Настройка условий на основе поля, которое не включается в вывод

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

Добавьте поле в таблицу запроса.

Снимите для него флажок в строке Показывать.

Задайте условия, как для выводимого поля.

Действие 5. Рассчитайте итоговые значения

Этот этап является необязательным.

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

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

Когда запрос открыт в конструкторе, на вкладке "Конструктор" в группе "Показать или скрыть" нажмите кнопку Итоги.

Access отобразит строку Итого на бланке запроса.

Для каждого необходимого поля в строке Итого выберите нужную функцию. Набор доступных функций зависит от типа данных в поле.

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

Действие 6. Просмотрите результаты

Чтобы увидеть результаты запроса, на вкладке "Конструктор" нажмите кнопку Выполнить. Access отобразит результаты запроса в режиме таблицы.

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

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



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

Запрос — объект БД, который используется для реализации эффективного поиска и обработки данных.

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

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

Запрос на выборку позволяет:

1. Просматривать значения только из полей, которые вас интересуют.
2. Просматривать записи, которые отвечают указанным вами условиям.
3. Использовать выражения в качестве полей.

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

Основные режимы работы с запросами в Access:

1. Режим таблицы. Отображает информацию запроса на выборку в режиме таблицы.

2. Конструктор. В этом режиме определяется структура запроса и условия выбора данных (см. Приложение к главе 1).

Создать запрос можно с помощью Мастера запросов либо в Конструкторе (пример 5.2).

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

Основные этапы создания запроса на выборку:

1. Выбор инструмента создания запроса.
2. Определение вида запроса.
3. Выбор источника(ов) данных.
4. Добавление из источника(ов) данных полей, которые должен содержать запрос.
5. Определение условий, которые формируют набор записей в запросе.
6. Добавление группировки, сортировки и вычислений (может отсутствовать).

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

Примеры записи условий в запросах:

Действие в запросе

Поля с числовым типом данных

Выбираются записи, у которых значение в этом поле больше 0 и меньше 8.

Выбираются записи, у которых значение в этом поле не равно 0.

Поля с текстовым типом данных

Если значение в поле записи равно Орша, то запись включается в результат запроса.

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

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

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

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

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

Все запросы, которые рассмотрены в примерах 5.3 и 5.4 , содержат конкретные значения названий, имен, времени и т. д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его нужно будет открыть в конструкторе, изменить условие и выполнить. Чтобы не делать многократно этих операций, можно создать запрос с параметрами. При выполнении такого запроса выдается диалоговое окно Введите значение параметра, в котором пользователь может ввести конкретное значение, а затем получить нужный результат. Параметр запроса определяется в строке Условие отбора конструктора для столбца, содержащего запрашиваемые значения. Параметром является слово или фраза, заключенные в квадратные скобки. Параметр будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса (пример 5.5).

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

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

Наряду с запросами на выборку часто применяются запросы на действие. С помощью таких запросов можно обновлять значения полей записей, добавлять новые или удалять уже существующие записи. В СУБД Access такие запросы можно создать в режиме конструктора, воспользовавшись инструментами группы Тип запроса:


Пример 5.1. Режимы работы с запросами.


Режим SQL позволяет создавать и просматривать запросы с помощью инструкций языка SQL.

SQL (англ. structured query language — язык структурированных запросов). Применяется для создания, редактирования и управления данными в реляционной базе данных.

Пример 5.2. Группа инструментов Запросы вкладки Создание.


Пример 5.3. Создание запроса на выборку с помощью Мастера запросов.


1. Выбрать инструмент .

2. Выбрать вид запроса.


3. Выбрать источник данных.


4. Задать поле, содержащее повторяющееся значение.


5. Выбрать поля для отображения вместе с повторяющимися значениями.


6. Просмотреть и/или сохранить запрос.


Пример 5.4. Создание простых запросов на выборку с помощью Конструктора запросов.

1. Выбрать инструмент


2. Выбрать источник данных.


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


4. Записать условие формирования набора записей в запросе.

4.1. Выбор по полю с текстовым типом данных.





4.2. Выбор по полю с числовым типом данных.



4.3. Использование составного условия.





5. Сохранить запросы.

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

1. Открыть один из запросов, созданных в примере 5.4 в конструкторе.

2. Изменить условия отбора на:


3. Сохранить с новым именем и открыть в режиме таблицы.

4. В диалоговом окне набрать одно из названий кинотеатра.


5. Просмотреть запрос.


Пример 5.6. Создание итогового запроса.

Создать итоговый запрос, определяющий, сколько мальчиков и сколько девочек посещают факультатив по математике.

1. Источник данных — таблица «Учащиеся».


2. Создать запрос с помощью конструктора (добавить в запрос только поле «Пол»).



3. Сгруппировать данные по полю «Пол» (нажать кнопку в группе Показать или скрыть).


4. Добавить вычисляемое поле (в строке нового поля Групповая операция в списке выбрать функцию Count).

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

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

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

Для создания любого из них надо в окне базы данных выбрать объект Запросы и щелкнуть по кнопке Создать. Откроется окно Новый запрос, вид которого представлен на рис. 1.

Рисунок 1 Окно БД Штат и окно выбора видов запросов

Простой запрос позволяет создать с помощью Мастера запрос на выборку данных из определенных полей таблиц или запросов, он наиболее удобен для начинающих пользователей. При его выборе запускается Мастер, в первом окне которого (рис. 2) нужно в списке Таблицы и запросы выбрать таблицу, напр., Штат преподавателей, выбрать из перечня её доступных полей те, которые должны присутствовать в запросе и перевести каждое нажатием кнопки [>]. Аналогично в запрос добавляются поля из других таблиц той же БД .

Примечание. Запрос может составляться только по таблицам или только по запросам БД. Объединение в запросе полей из таблицы и запроса не допускается.


Рисунок 2 Выбор полей для запроса.

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

Перекрестный запрос имеет вид таблицы, в которой выводится до трёх полей (столбцов) исходной таблицы, ячейки одного из оставшихся преобразуются в новые столбцы, а на их пересечении выводится одно из указанных пользователем значений – Дисперсия, Минимум, Максимум, Среднее, Отклонение, Число, Первое, Последнее и др. Например, запрос на рис. 4 является перекрёстным запросом таблицы 1 на рис. 3, в котором величины расстояний стали названиями столбцов:

Вариант Повторяющиеся записисоздаёт запрос на поиск повторяющихся записей (строк) в одной таблице или запросе, для таблицы на рис. 3 при заданных полях Расстояние и Стоимость проезда он имеет вид (рис.5)

MS Access позволяет создать такой запрос только для одной таблицы или запроса (не для нескольких таблиц БД), причём в нём нужно задавать


Рисунок 3 Таблица 1 для создания перекрёстного запроса


Рисунок 4 Перекрёстный запрос табл. 1


Рисунок 5 Запрос на выборку повторяющихся записей

только те поля, в которых есть полное одновременное совпадение данных из записей (например, поле Транспорт в этот запрос включать нельзя). Дополнительно, для распознавания, можно включить неповторяющееся поле (Город).

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


Рисунок 6 Основная таблица 1

Запрос без подчинённых на сравнение таблиц рис. 3 и рис. 6 выведет на экран несовпадающую строку (рис. 7):


Рисунок 7 Запрос без подчинённых

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

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

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

В Microsoft Access можно создавать различные типы запросов: запросы на выборку, запросы с параметрами, перекрестные запросы, запросы на изменение (запросы на создание таблицы, удаление, обновление, добавление записей), запросы SQL (запросы на объединение, запросы к серверу, управляющие запросы, подчиненные запросы).

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

Запросы можно строить с помощью Мастера запросов или самостоятельно в режиме Конструктора.

Для создания запроса на выборку без использования Мастера надо в окне БД выбрать объект Запросы, нажать кнопку Создать и в диалоговом окне Новый запрос выбрать команду Конструктор. В открывшемся окне Конструктора запросов можно создавать запрос на выборку из одной или нескольких связанных таблиц. В качестве источника данных для запроса можно использовать не только таблицу, но и другой ранее составленный запрос.

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


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

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

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

При определении условия отбора необходимо использовать те значения поля, которые хранятся в таблице, но не подстановочные значения. Пусть, например, необходимо отобрать записи о покупках, сделанных клиентом РГРТУ, и в качестве источника данных используется таблица ПОКУПКИ. Тогда в условии отбора для поля КодКлиента необходимо указать код РГРТА, т. е. цифру 4. Если этот же запрос создать на двух таблицах - ПОКУПКИ и КЛИЕНТЫ, то в качестве условия отбора для поля ИмяКлиента надо ввести слово РГРТУ. В том случае, когда условие отбора содержит значки подстановки ? или *, условие (даже число) надо заключать в апострофы.

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

Выражение для вычисляемого поля удобнее вводить в Область ввода. Для ее вызова надо после щелчка в свободной ячейке нажать Shift+F2.

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

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

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

Существует девять функций для выполнения групповых операций. В их числе:

Sum - возвращает сумму всех значений данного поля в каждой группе;

Avg – возвращает среднее арифметическое значений полей в группе;

Min, Max – возвращает наименьшее или наибольшее значение в каждой группе,

Count - возвращает число записей в группе, для которых значения данного поля отличны от Null.

Групповые операции можно выполнять и над вычисляемыми полями.

Так, например, для подведения итогов по объемам покупок, сделанных каждым из клиентов, можно составить итоговый запрос на таблицах ПОКУПКИ и КНИГИ В качестве источника данных для итогового запроса можно использовать также рассмотренный выше запрос с вычисляемым полем. В бланк итогового запроса надо включить поля КодКлиента, Количество из таблицы ПОКУПКИ и создать вычисляемое поле Сумма так, как это описано выше. Для первого из полей надо оставить установку Группировка, а для двух других полей эту установку следует заменить итоговой функцией Sum. В результате выполнения запроса сформируется список, содержащий по одной записи для каждого клиента с итоговыми значениями – общим количеством купленных этим клиентом книг и общей стоимостью всех сделанных им покупок.

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

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

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

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

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

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

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

в ответ на запрос, имена клиентов будут располагаться слева сверху вниз (по строкам), а названия разделов - вверху слева направо (по столбцам). Кроме того, в таблице появится столбец, содержащий суммарное количество покупок для каждого клиента. Для создания такого запроса придется объединить данные из нескольких таблиц, поэтому вначале придется создать запрос, объединяющий данные, а потом создать перекрестный запрос, основанный на объединяющем запросе. Объединяющий запрос должен сформировать таблицу с полями КодКлиента (таблица ПОКУПКИ), Раздел (таблица РАЗДЕЛЫ), Количество (таблица ПОКУПКИ).

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

Читайте также: