Запросы в БД
5.1. Понятие запроса.
5.2. Алгоритм создания запроса с помощью QBE в СУБД MS Access.
5.3. Условия отбора записей.
5.4. Параметрические запросы.
5.1. Понятие запроса
Главное назначение любой базы данных состоит в хранении данных и предоставлении информации по запросу пользователя.
Запрос представляет собой предписание на специальном языке (языке базы данных), определяющее состав производимых над базой данных операций по выборке, модификации или удалению хранимых данных.
Все многообразие запросов можно проклассифицировать схемой приведенной на рис. 5.1.
С точки зрения решаемых информационных задач и формы результатов исполнения запросов их можно разделить на три основные группы:
— запросы на выборку;
— запросы на изменение;
— управляющие запросы.
Формирование запросов в СУБД может осуществляться в специальном редакторе (командный режим) или через наглядно-диалоговые средства: конструкторы и пошаговые мастера формирования запросов. Сформированный запрос может быть сохранен в базе данных для дальнейшего использования.
В современных СУБД для подготовки запросов чаще всего используются два основных языка описания запросов:
– QBE (Query By Example) – язык запросов по образцу;
– SQL (Structured Query Language) – структурированный язык запросов.
По возможностям манипулирования данными языки SQL и QBE практически одинаковы. Главное отличие между ними заключается в способе формирования запросов: визуальном (QBE) или программировании (SQL).
Между QBE и SQL имеется тесная связь: запросы созданные пользователем в QBE хранятся в формате SQL, т. е. SQL является внутренним стандартом для выполнения и хранения запросов.
![]() |
Рис. 5.1. Классификация запросов в реляционных СУБД
Первое описание QBE было предложено М. М. Злуффом в 1975-1977 гг.
Язык QBE позволяет создавать сложные запросы к базе данных путем заполнения предлагаемой СУБД запросной формы (бланка запроса). При подготовке запросов с помощью бланка QBE не требуется описывать алгоритм выполнения операций, достаточно описать образец ожидаемого результата. В каждой современной СУБД имеется свой вариант языка QBE.
С помощью QBE можно создавать запросы на выборку и запросы на изменение. В качестве источника данных для формирования запросов могут выступать одна или несколько таблиц, а также сохраненные запросы. Выборка, вставка, удаление и модификация могут производиться безусловно или в соответствии с условиями, задаваемыми с помощью логических выражений. Вычисления над данными задаются с помощью выражений и порождают в ответных таблицах новые поля, называемые
В таблице 5.1 представлены основные операции, поддерживаемые QBE и результаты выполнения запросов
Таблица 5.1
Операция |
Результат |
Выборка данных |
Ответная таблица (временная) |
Вычисления над данными |
|
Вставка новых записей |
Обновленная исходная таблица |
Удаление записей |
|
Модификация (изменение) данных |
|
Создание новой таблицы |
Новая таблица в базе данных |
В современных СУБД, например Access и Visual FoxPro, многие действия по подготовке запросов с помощью языка QBE выполняются визуально с помощью мыши.
5.2. Алгоритм создания запроса с помощью QBE в СУБД MS Access
При создании запроса с помощью QBE в СУБД MS Access необходимо выполнить следующие операции:
1. В окне базы данных (рис.5.2, а) открыть контейнер Запросы.
2. Щелкнуть по клавише Создать.
3. В появившемся диалоговом окне Новый запрос (рис.5.2, б) выбрать режим Конструктор и щелкнуть по клавише ОК.
4. В появившемся диалоговом окне Добавление таблицы
5. Определить связи между источниками данных (если они не были определены заранее в окне Схема данных).
![]() |
(а) (б)
Рис.5.2. Окно базы данных (а), диалоговое окно Новый запрос (б)
![]() |
(а) (б)
Рис.5.3. Бланк запроса QBE (а), диалоговое окно Добавление таблицы (б)
6. Изменить в диалоговом окне Параметры объединения (рис.5.4, б) тип объединения между источниками данных, если необходимо.
![]() |
(а) (б)
Рис.5.3. Бланк запроса QBE (а), диалоговое окно Параметры объединения (б)
7. Определить необходимый набор полей (рис.5.4).
8. Добавить вычисляемые поля (при необходимости).
9. Задать условия отбора записей (при необходимости).
10.
![]() |
Определить группировку и итоговые (агрегатные) функции для полей запроса (при необходимости).
Рис.5.4. Сформированный бланк запроса QBE
11. Указать параметры отображения результатов запроса: показ/скрытие полей, сортировка данных (при необходимости).
12. Преобразовать тип запроса в другой тип (при необходимости).
13. Отобразить результирующий набор записей или произвести модификацию данных (рис.5.5).
Рис.5.5. Результат выполнения запроса в режиме Таблицы
14. Для дальнейшего использования (в качестве источника данных для других запросов, форм, отчетов и т. п.) сохранить в базе данных. Запрос в базе данных хранится в виде поименованной инструкции SQL (рис.5.6).
Рис.5.6. Запрос в режиме SQL
5.3. Условия отбора записей
Условие отбора записей – это набор предопределенных или задаваемых пользователем правил.
Условия отбора записей могут задаваться для одного или нескольких полей в соответствующей строке бланка запроса (рис.5.4). Условием отбора является выражение, которое состоит из операторов сравнения (табл. 5.2) и операндов.
В качестве операндов выражения могут использоваться константы и идентификаторы. Идентификатор представляет собой ссылку на значение поля, элемента управления или свойства. Идентификаторами могут быть имена полей таблиц, запросов, форм и т. д., например:
[Имя_поля]
[Имя_таблицы]![Имя_поля]
[Forms]![Имя_формы]![Имя_элемента_управления]
[Forms]![Имя_формы]![Имя_элемента_управления].[Свойство]
Таблица 5.2
Оператор |
Описание |
< |
Меньше |
<= |
Меньше или равно |
> |
Больше |
>= |
Больше или равно |
= |
|
<> |
Не равно |
IS NULL |
Проверка на пустое значение |
IS NOT NULL |
Проверка на непустое значение |
IN |
Проверка на равенство любому значению из списка IN(«США»; «Канада»; «Мексика») |
BETWEEN |
Проверка, на принадлежность значения указанному диапазону (верхняя и нижняя граница разделяются логическим оператором AND) BETWEEN 100 AND 300 |
LIKE |
Проверка соответствия текстового или MEMO поля заданному шаблону символов |
Таблица 5.3
Символы шаблона, используемые в операторе LIKE
Шаблон |
Описание |
? |
Любой символ LIKE «ст? л» |
* |
Любое (включая нулевое) количество символов LIKE «*стол*» |
# |
Любая цифра от 0 до 9 LIKE «199#» |
[<список>] |
Отбор полей, содержащих один символ, находящийся в списке LIKE «[0-9]», LIKE «[абк-м]» |
[!<список>] |
Отбор полей, не содержащих один символ, находящийся в списке LIKE «[!0-9]» , LIKE «[!абк-м]» |
С помощью логических операторов AND, OR и NOT можно задавать несколько условий для отбора данных по одному полю:
>=10 AND <=100
>3 And <5 Or >10 And <15
Текстовые константы в выражении должны быть заключены в двойные кавычки:
Like «М*» Or «США»
Константы типа дата/время выделяются символами #:
>= #01/03/2003# AND < #01/03/2003#
>= #12:00:00# AND < #14:25:00#
5.4. Параметрические запросы
Условие отбора для поля или нескольких полей может задаваться пользователем при выполнении запроса. Для этого необходимо при разработке запроса в строке условие отбора в квадратных скобках указать параметр, например
[Номер заказа]
>=[Начальная дата] AND <=[Конечная дата]
Like [Первые буквы названия] & «*»
При выполнении запроса текст параметра будет отображен в диалоговом окне (рис. 5.7).
Рис.5.7. Окно ввода параметра
po-teme.com.ua
Работа с базой данных: для чего предназначены запросы
Что понимают под запросом? Что означает словосочетание «запрос в базу данных»? В чем заключается предназначение запросов, посылаемых в базу данных?
Обычно под запросом имеется ввиду подача определенных условий, в соответствии с которыми база данных выдаст ответ и предоставит информацию, которая вас интересует.
Это значит, что пользователь посылает определенные условия, по которым из базы отбирается нужная информация и передается на сторону клиента. Изучив данную статью, вы сможете также узнать о предназначении запроса.
Для чего нужны запросы в БД?
В данной статье мы постараемся ответить на вопрос, что представляет собой запрос, но и понять для чего нужны запросы. Прежде всего запросы необходимы для того, чтобы получить информацию, содержащуюся в базе данных. Если говорить более простым языком, базы данных используются для получения информации, необходимых в отдельных случаях. Запросы могут иметь различное предназначение. Они могут использоваться для идентификации клиента банка или работника внутрикорпоративной сети, а также для получения информации о состоянии аккаунта на сайте.
Из чего состоит запрос?
Для создания запросов используется SQL. В них обязательно должно быть два элемента: FROM и SELECT. Может также использоваться ряд других команд. Используя их можно задать новые требования к отбору информации, а также отсортировать ее для более удобного отображения. Данные запросы к базе данных используются для получения необходимой информации. После обязательных частей самой популярной является составляющая Where. Она используется для задания конкретных условий для отбора информации. Здесь можно указать дату рождения, идентификационный номер и другую уникальную информацию, по которой можно определить человека.
Построение запроса
У любого запроса есть строгая иерархия построения, при нарушении которого, должного результата добиться не получится. Опишем пример построения запроса с тремя компонентами. Сначала используем Where, From, Select. Операторы могут быть набраны как прописными, так и заглавными буквами. Это не будет влиять на выполнение запроса. Операторы принято писать с заглавной буквы, а условия, названия таблиц и другие компоненты – с маленькой. Так вам будет проще ориентироваться при просмотре кода. При работе с различными средами разработки процесс построения запроса, как правило, не отличается. Так, например, если вы рассматриваете процесс построения запросов для базы данных access, то можете быть уверены, что правила построения запросов подойдут и для другой среды.
Основные данные
В качестве основных частей любого запроса используются следующие компоненты:
— SELECT – применяется для указания нужной информации. Именно эта информация будет передана из базы данных в программу, которую использует пользователь.
— FROM – дает возможность указать, откуда нужно взять данные. В базе данных хранятся не непосредственно данные, а таблицы, в которых содержаться данные. В разных таблицах могут содержаться столбцы с одинаковыми данными. Чтобы избежать этого, необходимо использовать указание, что откуда берется.
Групповые запросы и дополнительные данные для запроса
Чтобы улучшить результаты поиска и предоставить данные по уже известной информации, можно использовать дополнительные команды. Команда Where может использоваться для того, чтобы отсортировать всю необходимую информацию по определенным условиям отбора. Команда LIMIT применяется для того, чтобы ограничить количество строк, взятых из таблицы. Используя GROUP BY, можно сгруппировать информацию, полученную из базы данных. При использовании группировки может быть подана не любая информация, а только та, которая имеет тот же тип и размер, что и данные в группе.
Особенности команды GROUP BY можно узнать из отдельной статьи. Групповые операции нужны для того, чтобы улучшить внешний вид предоставляемой информации, а также придать ей читабельны вид. Команда UNION используется для того, чтобы поместить в запрос подзапрос. Такой вариант может потребоваться при обработки значительных объемом информации. Команда LIKE используется для того, чтобы проверить, соответствует ли маска в запросе определенным данным по размерам. Так, например, при помощи такой команды можно найти человека в базе данных, зарплата которого измеряется шестизначным числом.
Пример
Понимание написанных запросов порой бывает довольно проблематично без указания соответствующих примеров. Если же выяснить нужную информацию на одном примере не получится, вам нужно будет искать огромное количество информации, пока вы не сможете разобраться со всеми возможностями, которые предоставляет SQL. Давайте рассмотрим следующий запрос: SELSCT Name, Product Number, List Price AS Price FROM Production Product WHERE Product Line =’R’. Сначала осуществляется выборка нужных данных: названия, номера продукта и страницы из прайс-листа. Листок цен выводится под названием «цена». Информация берется из базы данных.
В целом, если вы работаете только с одной базой данной, указывать базу данных необязательно. Но если вы используете одновременно несколько баз, то обязательно указывайте базу, к которой нужно обратиться. Иначе компьютер просто не поймет, к какой базе данных вы обращаетесь, и проигнорирует ваш запрос или выдаст ошибку. В третьей строке выводится не вся информация, а только та, которая принадлежит «P» линейке продукции. Надеемся, данный обзор позволил вам разобраться с тем, что представляет собой запрос.
bezwindowsa.ru
Работа с базой данных: для чего предназначены запросы
Что такое «запрос»? Что вообще подразумевают под запросом в базу данных? Для чего предназначены запросы, которые посылаются в БД?

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

Построение запроса

Построение запроса, как правило, не отличается при работе в различных средах разработки. Так, стоит перед вами вопрос: «для чего предназначены запросы в access» или в другой среде разработки, и можно быть уверенным, что ответы, данные в этой статье, подойдут к им всем.
Основные данные запроса
Основных составляющих частей, как уже упоминалось ранее, всего две:
- SELECT [что нужно 1, что нужно 2, что нужно 3] – используется для того, чтобы указать, какая информация нужна. Именно она будет передана из БД в программу, с которой работает пользователь.
- FROM [таблица, из которой берутся данные] – указать необходимые данные мало, нужно ещё и указать, откуда они должны быть взятые. В непосредственно БД хранятся не данные, а таблицы, в которых уже сами данные. В разных таблицах могут быть одинаковые столбцы данных, чтобы такого избежать, и используют указание, откуда что берётся.
Дополнительные данные запроса и групповые операции

- Where [условия поиска] – используется, чтобы отсортировать необходимую информацию относительно определённых условий отбора.
- LIMIT [число] – используется, чтобы ограничить количество строк, которые будут взятые из таблицы.
- GROUP BY [параметр запроса] – используется для того, чтобы сгруппировать полученную информацию от БД. Но группировке может быть подана не любая информация, а только соразмерна и имеющая один и тот же тип. Более подробно вы можете узнать, найдя отдельную статью по GROUP BY. Групповые операции в запросах предназначены для улучшения внешнего вида предоставляемой информации и её большей читабельности.
- UNION [запрос] используется для того, чтобы поместить в запрос отдельный подзапрос. При получении довольно значительного объема информации может понадобиться и такой вариант.
- LIKE “” используют, чтобы проверить, отвечает ли маска в запросе по размерам определённым данным. Так, с её помощью может искаться человек, зарплата которого вымеряется шестизначными числами.
Пример

SELECT Name, ProductNumber, ListPrice AS Price
FROM Production.Product
WHERE ProductLine = ‘R’
Разбираем предложенный мной выше код. Сначала идёт выборка необходимых данных: имени, номера продукта и страница листка цен. Причем листок цен выводится под немного другим именем – просто «цена». Данные берутся из базы данных «Продукция» из таблицы «Продукт». В целом указывать базу данных необязательно, если вы работаете только с одной, которой собственно и шлете запрос. Но если баз несколько, то обязательно указывайте, учитывая то, что компьютер просто не будет понимать, к кому вы обращаетесь или вообще проигнорирует ваш запрос и выдаст ошибку. Третья строка указывает, что выводится не вся информация, а лишь та, которая идёт в линейке продукции «Р». Вот и закончилась небольшая статья, прочитав которую вы теперь понимаете, для чего предназначены запросы.
fb.ru
13. Запросы к бд. Разновидности запросов, их структура.
Запросы — это объект базы данных, который служит для извлечения данных из таблиц и предоставления их пользователю в удобном виде. Особенность запросов состоит в том, что они черпают данные из базовых таблиц и создают на их основе временную таблицу. Применение запросов позволяет избежать дублирования данных в таблицах и обеспечивает максимальную гибкость при поиске и отображении данных в базе данных.
Access позволяет создавать запросы двух типов: QBE-запросы, SQL-запросы.
QBE-запросы (Query By Example) — запросы, строящиеся с помощью конструктора запросов, представляющего собой графический инструмент для создания запросов по образцу.
SQL-запросы — запросы, строящиеся при помощи унифицированного набора инструкций SQL (Structured Query Language — структурированный язык запросов).
Все запросы делятся на две группы: запросы-выборки, запросы-действия.
Запросы-выборки осуществляют выборку данных из таблиц в соответствии с заданными условиями. К этой группе запросов относятся следующие.
Запрос к связанным таблицам — позволяет производить выборку данных из связанных таблиц.
Перекрестный запрос — отображает итоговые данные с группировкой их по горизонтали и вертикали, выводя результаты их обработки в виде таблиц.
Запрос с параметром — позволяет пользователю задать критерий отбора, введя нужный параметр при вызове запроса.
Запрос с вычисляемым полем — позволяет рассчитать данные на основе других полей из той же строки запроса.
Запрос с критерием поиска — позволяет производить отбор записей в соответствии с заданным критерием поиска.
Запрос с итогами — производит математические вычисления и выдает результат.
Запросы-действия позволяют модифицировать данные в таблицах: удалять, обновлять, добавлять записи. К этой группе запросов относятся следующие.
Запросы на создание таблицы создают таблицы на основании данных, содержащихся в результирующем множестве запроса.
Запросы на добавление записей позволяют добавлять в таблицу записи, создаваемые запросом.
Запросы на обновление изменяют значения существующих полей в соответствии с заданным критерием.
Запросы на удаление удаляют записи из одной или нескольких таблиц одновременно.
В Access можно создавать запросы при помощи Мастера запросов и с помощью Конструктора.
Для создания запросов при помощи Мастера имеются следующие мастера:
Мастер создания простого запроса;
Мастер создания перекрестного запроса;
Мастер создания запросов на поиск повторяющихся записей;
Мастер создания запросов на поиск записей без подчиненных записей.
При создании запроса с помощью Мастера производится пошаговое выполнение действий в диалоговом окне Мастера запросов.
Конструктор запросов позволяет создавать новые и изменять существующие запросы, поэтому он является основным способом при создании запросов QBE.
При создании запросов в режиме Конструктора открывается специальный бланк, называемый бланком запросов по образцу. Этот бланк состоит из двух, областей. В верхней части отображаются структуры таблиц, к которым адресован запрос, а нижняя часть представляет собой таблицу описания запроса, которая имеет 5 основных строк. Количество столбцов в запросе определяется количеством выбранных полей, которые будут использованы в запросе.
Назначение строк в бланке Конструктора запросов:
1-я строка Поле предназначена для ввода имени поля запроса и обозначения поля — источника данных или вычисляемого выражения;
2-я строка Имя таблицы предназначена для задания имени таблицы — источника данных;
3-я строка Сортировка предназначена для указания порядка сортировки в данном поле. Может принимать следующие значения: по возрастанию, по убыванию, отсутствует;
4-я строка Вывод на экран содержит флажок, указывающий на то, будет ли выводиться соответствующее значение поля;
5-я строка Условие отбора содержит критерий, по которому будет происходить отбор записей в результирующую таблицу.
Запросы могут быть созданы на основе одной или нескольких таблиц. Многотабличные запросы позволяют получить информацию из нескольких предварительно связанных между собой таблиц.
studfiles.net
Создание запросов в БД — Базы данных
Запрос строится на основе одной или нескольких взаимосвязанных таблиц, позволяя комбинировать содержащуюся в них информацию. При этом могут использоваться как таблицы базы данных, так и сохраненные таблицы, полученные в результате выполнения других запросов. Кроме того, запрос может строиться непосредственно на другом запросе с использованием его временной таблицы с результатами. Запрос QBE содержит схему данных, включающую используемые таблицы и бланк запроса. При конструировании запроса достаточно выделить и перетащить с помощью мыши необходимые поля из таблиц, представленных в схеме данных запроса, в бланк запроса и ввести условия отбора записей.
Назначение и виды запросов
Запрос позволяет выбрать необходимые данные из одной или нескольких взаимосвязанных таблиц, произвести вычисления и получить результат в виде виртуальной таблицы. Полученная таблица может использоваться в качестве источника данных в следующих запросах, формах, отчетах, страницах доступа к данным. Через запрос можно производить обновление данных в таблицах, добавление и удаление записей.
С помощью запроса можно выполнить следующие виды обработки данных:
- выбрать записи, удовлетворяющие условиям отбора;
- включить в результирующую таблицу запроса заданные пользователем поля;
- произвести вычисления в каждой из полученных записей;
- сгруппировать записи с одинаковыми значениями в одном или нескольких полях в одну запись с одновременным выполнением над другими полями групповых функций;
- произвести обновление полей в выбранном подмножестве записей;
- создать новую таблицу базы данных, используя данные из существующих таблиц;
- удалить выбранное подмножество записей из таблицы базы данных; добавить выбранное подмножество записей в другую таблицу.
Многотабличный запрос позволяет сформировать записи результата путем объединения взаимосвязанных записей из таблиц БД и включения нужных полей из нескольких таблиц. В частности, при объединении двух нормализованных связанных одно-многозначными отношениями таблиц результирующая запись образуется на основе записи подчиненной таблицы, в которую добавляются поля из связанной записи в главной таблице. Заметим, что подобное объединение формирует новую таблицу, которая не является нормализованной. Выбранный тип объединения таблиц задается при установлении связи между таблицами и определяет способ формирования записей запроса. По умолчанию связи устанавливаются с параметром объединения первого типа: объединение только тех записей, в которых значения связанных полей обеих таблиц совпадают.
Последовательное выполнение ряда запросов по образцу позволяет решать достаточно сложные задачи, не прибегая к программированию.
В Access может быть создано несколько видов запроса.
- Запрос на выборку — выбирает данные из взаимосвязанных таблиц и других запросов. Результатом его является таблица, которая существует до закрытия запроса. На основе этого вида запроса могут строиться запросы других видов.
- Запрос на создание таблицы — также выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, сохраняет результат в новой постоянной таблице.
- Запросы на обновление, добавление, удаление — являются запросами действия, в результате выполнения которых изменяются данные в таблицах.
Создание запроса
Лучшим способом создания запроса является использование графического конструктора — одного из наиболее мощных средств Access. Основные принципы конструирования различных запросов заложены в технике конструирования запроса на выборку, являющегося основой всех видов запроса.
Запрос на выборку позволяет достаточно просто выбрать данные из одной или нескольких взаимосвязанных таблиц. Результаты выполнения запроса отображаются в виде временной таблицы, существующей до закрытия запроса. Поля, составляющие записи этой таблицы, указываются пользователем в запросе. Записи таблицы результатов запроса формируются на основе записей в исходных таблицах и связей между этими таблицами и фильтруются в соответствии с заданными в запросе условиями отбора.
Таблица результатов запроса может применяться при дальнейшей обработке данных. В запросе на выборку могут использоваться не только таблицы базы данных, но и ранее созданные запросы, а вернее таблицы, являющиеся результатом их выполнения. При этом нет необходимости сохранять таблицы, получаемые в результате выполнения ранее созданных запросов.
Однако в ряде случаев непосредственное использование в запросе другого запроса невозможно. Тогда необходимо преобразовать включаемый запрос в запрос на создание таблицы. Этот запрос, в отличие от запроса на выборку, сохраняет результат в новой таблице БД, после чего эта таблица может включаться в состав таблиц для построения запроса.
Результаты выполнения запроса выводятся в режиме таблицы. Окно запроса в режиме таблицы аналогично окну просмотра таблицы базы данных. В этом режиме становится активной панель инструментов Запрос в режиме таблицы.
Таблица в режиме таблицы
Несмотря на то, что поля результирующей таблицы принадлежат, как правило, нескольким таблицам базы данных, с ними можно работать так, как если бы они принадлежали одной таблице. Можно изменить данные в таблице результатов запроса на выборку, и сделанные изменения будут внесены в базовые таблицы. Особенно важно, что, несмотря на дублируемость данных, возникающую в результате объединения записей таблиц, изменение одного данного в таблице запроса автоматически приводит к изменению всех повторяющихся в таблице запроса значений. Это определяется тем, что через таблицу запроса меняется значение в исходной таблице, где оно представлено один раз.
Для выполнения необходимых действий при создании запросов используются команды меню или панель инструментов Конструктор запросов. Окно конструктора запросов разделено на две панели. Верхняя панель содержит схему данных запроса, которая включает выбранные поля данного запроса таблицы. Таблицы представлены списками полей. Нижняя панель является бланком запроса по образцу – QBE, который необходимо заполнить.
Схема данных запроса
В окне конструктора запроса отображаются выбранные таблицы со списком полей и одно-многозначные связи между ними, имеющиеся в схеме БД. Первая строка в списке полей, отмеченная звездочкой (*), обозначает все множество полей таблицы. Кроме того, если таблицы имеют поля с одинаковыми именами и типами данных, Access автоматически устанавливает связи для объединения таких таблиц, даже когда связи не были установлены в схеме данных. Пользователь может самостоятельно установить не установленные автоматически связи, переместив с помощью мыши, задействованные в связи поля из одного списка полей в другой.
При использовании в запросе других запросов или таблиц, не представленных в схеме данных базы, с ними также могут быть установлены связи-объединения.
Бланк запроса по образцу
Бланк запроса по образцу представлен в виде таблицы на нижней панели окна запроса. Такая таблица предназначена для конструирования структуры таблицы результата запроса и условий выборки данных из исходных таблиц. Первоначально эта таблица пуста.
Каждый столбец бланка относится к одному запрашиваемому полю. Поля могут использоваться для включения в таблицу запроса, для задания сортировки, для задания условий отбора записей, а также для выполнения вычислений в записях таблицы.
При заполнении бланка запроса:
- в строку Поле включаются имена используемых в запросе полей;
- в раскрывающемся списке Сортировка выбирается порядок сортировки записей результата;
- в строке Вывод на экран устанавливаются флажки для полей, которые должны быть включены в результирующую таблицу;
- в строке Условие отбора задаются условия отбора записей;
- в строке или задаются альтернативные условия отбора записей.
В ряде случаев в бланке запроса наряду с именем поля необходимо отображать имя соответствующей таблицы, например, когда поля имеют одинаковые имена в разных таблицах. Для отображения имен таблиц в строке бланка следует выбрать команду Вид | Имена таблиц или нажать соответствующую кнопку на панели конструктора запросов. В результате выполнения команды в бланке появится строка Имя таблицы.
Поля бланка запроса
Каждый столбец бланка запроса соответствует одному из полей таблиц, на которых строится запрос. Кроме того, здесь может размещаться вычисляемое поле, значение которого вычисляется на основе значений других полей записи результата, или итоговое поле для групп записей, использующее одну из встроенных групповых функций Access. Для включения требуемых полей таблиц в соответствующие столбцы запроса можно воспользоваться следующими приемами:
- в первой строке бланка запроса Поле щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит все поля таблиц, представленных в бланке запроса;
- переместить с помощью мыши требуемое поле из списка полей таблицы в схеме данных запроса в первую строку бланка запроса;
- дважды щелкнуть на имени поля таблицы в схеме данных запроса;
- для включения в запрос всех полей таблицы можно переместить с помощью мыши в соответствующую строку бланка запроса все поля из списка полей таблицы в схеме данных запроса или дважды щелкнуть на символе * (звездочка) в этом списке.
Модификация запроса
Добавление таблицы в схему данных запроса осуществляется с помощью команды меню Запрос | Добавить таблицу или нажатием соответствующей кнопки панели Конструктор запросов. Команда добавления может быть выполнена также через контекстное меню, вызываемое в режиме схемы данных запроса.
Добавление поля в бланк запроса осуществляется посредством одного из рассмотренных выше действий, например, перемещением с помощью мыши имени поля из таблицы в схеме данных в нужное место бланка. Все столбцы полей справа от него передвинутся на один столбец вправо.
Удаление поля в бланке запроса требует предварительного выделения соответствующего столбца. Для этого следует переместить курсор в область маркировки столбца, где он примет вид направленной вниз черной стрелки, и щелкнуть кнопкой мыши. Далее нажмите клавишу или выберите пункт меню Правка | Удалить столбцы.
Для перемещения поля в бланке запроса выделите с помощью мыши соответствующий столбец и переместите его на новую позицию. Столбец, на место которого перемещен новый, и все столбцы справа от него будут сдвинуты вправо.
itteach.ru
Запросы в Access — Базы данных Access
Запросы в Access являются основным инструментом выборки, обновления и обработки данных в таблицах базы данных. Access в соответствии с концепцией реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL (Structured Query Language). С помощью инструкций языка SQL реализуется любой запрос в Access.
Основным видом запроса является запрос на выборку. Результатом выполнения этого запроса является новая таблица, которая существует до закрытия запроса. Записи формируются путем объединения записей таблиц, на которых построен запрос. Способ объединения записей таблиц указывается при определении их связи в схеме данных или при создании запроса. Условия отбора, сформулированные в запросе, позволяют фильтровать записи, составляющие результат объединения таблиц.
В Access может быть создано несколько видов запроса:
- запрос на выборку — выбирает данные из одной таблицы или запроса или нескольких взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса. Формирование записей таблицы результата производится в соответствии с заданными условиями отбора и при использовании нескольких таблиц путем объединения их записей;
- запрос на создание таблицы — выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, результат сохраняет в новой постоянной таблице;
- запросы на обновление, добавление, удаление — являются запросами действия, в результате выполнения которых изменяются данные в таблицах.
Запросы в Access в режиме конструктора содержат схему данных, отображающую используемые таблицы, и бланк запроса, в котором конструируется структура таблицы запроса и условия выборки записей (рис. 4.1).
С помощью запроса можно выполнить следующие виды обработки данных:
- включить в таблицу запроса выбранные пользователем поля таблицы;
- произвести вычисления в каждой из полученных записей;
- выбрать записи, удовлетворяющие условиям отбора;
- сформировать на основе объединения записей взаимосвязанных таблиц новую виртуальную таблицу;
- сгруппировать записи, которые имеют одинаковые значения в одном или нескольких полях, одновременно выполнить над другими полями группы статистические функции и в результат включить одну запись для каждой группы;
- создать новую таблицу базы данных, используя данные из существующих таблиц;
- произвести обновление полей в выбранном подмножестве записей;
- удалить выбранное подмножество записей из таблицы базы данных;
- добавить выбранное подмножество записей в другую таблицу.
Запросы в Access служат источниками записей для других запросов, форм, отчетов. С помощью запроса можно собрать полные сведения для формирования некоторого документа предметной области из нескольких таблиц, далее использовать его для создания формы — электронного представления этого документа. Если форма или отчет создаются мастером на основе нескольких взаимосвязанных таблиц, то для них в качестве источника записей автоматически формируется запрос.
Для закрепления смотрим видеоурок:
accesshelp.ru
Создание простого запроса на выборку
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Если вам нужно выбрать определенные данные из одного или нескольких источников, можно воспользоваться запросом на выборку. Запрос на выборку позволяет получить только необходимые сведения, а также помогает объединять информацию из нескольких источников. В качестве источников данных для запросов на выборку можно использовать таблицы и другие такие же запросы. В этом разделе вкратце рассматриваются запросы на выборку и предлагаются пошаговые инструкции по их созданию с помощью Мастера запросов либо в Конструктор.
Если вы хотите узнать больше о принципах работы запросов на примере базы данных Northwind, ознакомьтесь со статьей Общие сведения о запросах.
В этой статье
-
Overview
-
Создание запроса SELECT с помощью мастера запросов
-
Создание запроса в режиме конструктора
-
Создание запроса на выборку в веб-приложении Access
Общие сведения
Когда возникает потребность в каких-то данных, редко бывает необходимо все содержимое одной таблицы. Например, если вам нужна информация из таблицы контактов, как правило, речь идет о конкретной записи или только о номере телефона. Иногда бывает необходимо объединить данные сразу из нескольких таблиц, например совместить информацию о клиентах со сведениями о заказчиках. Для выбора необходимых данных используются запросы на выборку.
Запрос на выборку — это объект базы данных, который показывает информацию в режим таблицы. Запрос не хранит данные, но содержит данные, которые хранятся в таблицах. В запросе можно отобразить данные из одной или нескольких таблиц, из других запросов или из двух сочетаний.
Преимущества запросов
Запрос позволяет выполнять перечисленные ниже задачи.
-
Просматривать значения только из полей, которые вас интересуют. При открытии таблицы отображаются все поля. Вы можете сохранить запрос, который выдает лишь некоторые из них.
Примечание: Запрос только возвращает данные, но не сохраняет их. При сохранении запроса вы не сохраняете копию соответствующих данных.
-
Объединять данные из нескольких источников. В таблице обычно можно увидеть только те сведения, которые в ней хранятся. Запрос позволяет выбрать поля из разных источников и указать, как именно нужно объединить информацию.
-
Использовать выражения в качестве полей. Например, в роли поля может выступить функция, возвращающая дату, а с помощью функции форматирования можно управлять форматом значений из полей в результатах запроса.
-
Просматривать записи, которые отвечают указанным вами условиям. При открытии таблицы отображаются все записи. Вы можете сохранить запрос, который выдает лишь некоторые из них.
Основные этапы создания запроса на выборку
Вы можете создать запрос на выборку с помощью мастера или конструктора запросов. Некоторые элементы недоступны в мастере, однако их можно добавить позже из конструктора. Хотя это разные способы, основные этапы аналогичны.
-
Выберите таблицы или запросы, которые хотите использовать в качестве источников данных.
-
Укажите поля из источников данных, которые хотите включить в результаты.
-
Также можно задать условия, которые ограничивают набор возвращаемых запросов записей.
Создав запрос на выборку, запустите его, чтобы посмотреть результаты. Чтобы выполнить запрос на выборку, откройте его в режиме таблицы. Сохранив запрос, вы сможете использовать его позже (например, в качестве источника данных для формы, отчета или другого запроса).
Создание запроса на выборку с помощью мастера запросов
Мастер позволяет автоматически создать запрос на выборку. При использовании мастера вы не полностью контролируете все детали процесса, однако таким способом запрос обычно создается быстрее. Кроме того, мастер иногда обнаруживает в запросе простые ошибки и предлагает выбрать другое действие.
Подготовка
Если вы используете поля из источников данных, которые не связаны между собой, мастер запросов предлагает создать между ними отношения. Он откроет окно отношений, однако если вы внесете какие-то изменения, то вам потребуется перезапустить мастер. Таким образом, перед запуском мастера имеет смысл сразу создать все отношения, которые потребуются вашему запросу.
Дополнительную информацию о создании отношений между таблицами можно найти в статье Руководство по связям между таблицами.
Использование мастера запросов
-
На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов.
-
В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.
-
Теперь добавьте поля. Вы можете добавить до 255 полей из 32 таблиц или запросов.
Для каждого поля выполните два указанных ниже действия.
-
В разделе Таблицы и запросы щелкните таблицу или запрос, содержащие поле.
-
В разделе Доступные поля дважды щелкните поле, чтобы добавить его в список Выбранные поля. Если вы хотите добавить в запрос все поля, нажмите кнопку с двумя стрелками вправо (>>).
-
Добавив в запрос все необходимые поля, нажмите кнопку Далее.
-
-
Если вы не добавили ни одного числового поля (поля, содержащего числовые данные), перейдите к действию 9. При добавлении числового поля вам потребуется выбрать, что именно вернет запрос: подробности или итоговые данные.
Выполните одно из указанных ниже действий.
-
Если вы хотите просмотреть отдельные записи, выберите пункт подробный и нажмите кнопку Далее. Перейдите к действию 9.
-
Если вам нужны итоговые числовые данные, например средние значения, выберите пункт итоговый и нажмите кнопку Итоги.
-
-
В диалоговом окне Итоги укажите необходимые поля и типы итоговых данных. В списке будут доступны только числовые поля.
Для каждого числового поля выберите одну из перечисленных ниже функций.
-
Sum — запрос вернет сумму всех значений, указанных в поле.
-
Avg — запрос вернет среднее значение поля.
-
Min — запрос вернет минимальное значение, указанное в поле.
-
Max — запрос вернет максимальное значение, указанное в поле.
-
-
Если вы хотите, чтобы в результатах запроса отобразилось число записей в источнике данных, установите соответствующий флажок Подсчет числа записей в (название источника данных).
-
Нажмите ОК, чтобы закрыть диалоговое окно Итоги.
-
Если вы не добавили в запрос ни одного поля даты и времени, перейдите к действию 9. Если вы добавили в запрос поля даты и времени, мастер запросов предложит вам выбрать способ группировки значений даты. Предположим, вы добавили в запрос числовое поле («Цена») и поле даты и времени («Время_транзакции»), а затем в диалоговом окне Итоги указали, что хотите отобразить среднее значение по числовому полю «Цена». Поскольку вы добавили поле даты и времени, вы можете подсчитать итоговые величины для каждого уникального значения даты и времени, например для каждого месяца, квартала или года.
Выберите период, который хотите использовать для группировки значений даты и времени, а затем нажмите кнопку Далее.
Примечание: В режиме конструктора для группировки значений по периодам можно использовать выражения, однако в мастере доступны только указанные здесь варианты.
-
На последней странице мастера задайте название запроса, укажите, хотите ли вы открыть или изменить его, и нажмите кнопку Готово.
Если вы решили открыть запрос, он отобразит выбранные данные в режиме таблицы. Если вы решили изменить запрос, он откроется в режиме конструктора.
К началу страницы
Создание запроса в режиме конструктора
В режиме конструктора можно вручную создать запрос на выборку. В этом режиме вы полнее контролируете процесс создания запроса, однако здесь легче допустить ошибку и необходимо больше времени, чем в мастере.
Создание запроса
-
Действие 1. Добавьте источники данных
-
Действие 2. Соедините связанные источники данных
-
Действие 3. Добавьте выводимые поля
-
Действие 4. Укажите условия
-
Действие 5. Рассчитайте итоговые значения
-
Действие 6. Просмотрите результаты
Действие 1. Добавьте источники данных
В режиме конструктора источники данных и поля добавляются на разных этапах, так как для добавления источников используется диалоговое окно Добавление таблицы. Однако вы всегда можете добавить дополнительные источники позже.
-
На вкладке Создание в группе Другое нажмите кнопку Конструктор запросов.
-
В диалоговом окне Добавление таблицы на вкладке Таблицы, Запросы или Таблицы и запросы дважды щелкните каждый источник данных, который хотите использовать, или выберите их и нажмите кнопку Добавить.
-
Закройте диалоговое окно Добавление таблицы.
Автоматическое соединение
Если между добавляемыми источниками данных уже заданы отношения, они автоматически добавляются в запрос в качестве соединений. Соединения определяют, как именно следует объединять данные из связанных источников. Access также автоматически создает соединение между двумя таблицами, если они содержат поля с совместимыми типами данных и одно из них — первичный ключ.
Вы можете настроить соединения, добавленные приложением Access. Access выбирает тип создаваемого соединения на основе отношения, которое ему соответствует. Если Access создает соединение, но для него не определено отношение, Access добавляет внутреннее соединение.
Если приложение Access при добавлении источников данных автоматически создало соединения правильных типов, вы можете перейти к действию 3 (добавление выводимых полей).
Повторное использование одного источника данных
В некоторых случаях вы можете присоединиться к двум копиям одной и той же таблицы или запроса, которые называются самосоединение, и будут объединять записи из той же таблицы, если в Объединенных полях есть совпадающие значения. Например, предположим, что у вас есть таблица Employees, в которой поле «подчиняется» для записи каждого сотрудника отображает его идентификатор своего руководителя вместо имени. Вы можете использовать самосоединение для отображения имени руководителя в записи каждого сотрудника.
При добавлении источника данных во второй раз Access присвоит имени второго экземпляра окончание «_1». Например, при повторном добавлении таблицы «Сотрудники» ее второй экземпляр будет называться «Сотрудники_1».
Действие 2. Соедините связанные источники данных
Если источники данных, добавленные в запрос, уже имеют отношения, Access автоматически создает внутреннее соединение для каждой связи. Если используется целостность данных, Access также отображает «1» над линией соединения, чтобы показать, какая таблица находится на стороне «один» элемента отношение «один-ко-многим» и символ бесконечности (∞), чтобы показать, какая таблица находится на стороне «многие».
Если вы добавили в запрос другие запросы и не создали между ними отношения, Access не создает автоматических соединений ни между ними, ни между запросами и таблицами, которые не связаны между собой. Если Access не создает соединения при добавлении источников данных, как правило, их следует создать вручную. Источники данных, которые не соединены с другими источниками, могут привести к проблемам в результатах запроса.
Кроме того, можно сменить тип соединения с внутреннего на внешнее соединение, чтобы запрос включал больше записей.
Добавление соединения
-
Чтобы создать соединение, перетащите поле из одного источника данных в соответствующее поле в другом источнике.
Access добавит линию между двумя полями, чтобы показать, что они соединены.
Изменение соединения
-
Дважды щелкните соединение, которое требуется изменить.
Откроется диалоговое окно Параметры соединения.
-
Ознакомьтесь с тремя вариантами в диалоговом окне Параметры соединения.
-
Выберите нужный вариант и нажмите кнопку ОК.
После создания соединений можно добавить выводимые поля: они будут содержать данные, которые должны отображаться в результатах.
Действие 3. Добавьте выводимые поля
Вы можете легко добавить поле из любого источника данных, добавленного в действии 1.
-
Для этого перетащите поле из источника в верхней области окна конструктора запросов вниз в строку Поле бланка запроса (в нижней части окна конструктора).
При добавлении поля таким образом Access автоматически заполняет строку Таблица в таблице конструктора в соответствии с источником данных поля.
Совет: Чтобы быстро добавить все поля в строку «Поле» бланка запроса, дважды щелкните имя таблицы или запроса в верхней области, чтобы выделить все поля в нем, а затем перетащите их все сразу вниз на бланк.
Использование выражения в качестве выводимого поля
Вы можете использовать выражение в качестве выводимого поля для вычислений или создания результатов запроса с помощью функции. В выражениях могут использоваться данные из любых источников запроса, а также функции, например Format или InStr, константы и арифметические операторы.
-
В пустом столбце таблицы запроса щелкните строку Поле правой кнопкой мыши и выберите в контекстном меню пункт Масштаб.
-
В поле Масштаб введите или вставьте необходимое выражение. Перед выражением введите имя, которое хотите использовать для результата выражения, а после него — двоеточие. Например, чтобы обозначить результат выражения как «Последнее обновление», введите перед ним фразу Последнее обновление:.
Примечание: С помощью выражений можно выполнять самые разные задачи. Их подробное рассмотрение выходит за рамки этой статьи. Дополнительные сведения о создании выражений см. в статье Создание выражений.
Действие 4. Укажите условия
Это необязательно.
С помощью условий можно ограничить количество записей, которые возвращает запрос, выбирая только те из них, значения полей в которых отвечают заданным критериям.
Определение условий для выводимого поля
-
В таблице конструктора запросов в строке Условие отбора поля, значения в котором вы хотите отфильтровать, введите выражение, которому должны удовлетворять значения в поле для включения в результат. Например, чтобы включить в запрос только записи, в которых в поле «Город» указано «Рязань», введите Рязань в строке Условие отбора под этим полем.
Различные примеры выражений условий для запросов можно найти в статье Примеры условий запроса.
-
Укажите альтернативные условия в строке или под строкой Условие отбора.
Когда указаны альтернативные условия, запись включается в результаты запроса, если значение соответствующего поля удовлетворяет любому из указанных условий.
Условия для нескольких полей
Условия можно задать для нескольких полей. В этом случае для включения записи в результаты должны выполняться все условия в соответствующей строке Условия отбора либо Или.
Настройка условий на основе поля, которое не включается в вывод
Вы можете добавить в запрос поле, но не включать его значения в выводимые результаты. Это позволяет использовать содержимое поля для ограничения результатов, но при этом не отображать его.
-
Добавьте поле в таблицу запроса.
-
Снимите для него флажок в строке Показывать.
-
Задайте условия, как для выводимого поля.
Действие 5. Рассчитайте итоговые значения
Этот этап является необязательным.
Вы также можете вычислить итоговые значения для числовых данных. Например, может потребоваться просмотреть среднюю цену или общие продажи.
Для расчета итоговых значений в запросе используется строка Итого. По умолчанию строка Итого не отображается в режиме конструктора.
-
Когда запрос открыт в конструкторе, на вкладке «Конструктор» в группе «Показать или скрыть» нажмите кнопку Итоги.
Access отобразит строку Итого на бланке запроса.
-
Для каждого необходимого поля в строке Итого выберите нужную функцию. Набор доступных функций зависит от типа данных в поле.
Дополнительные сведения о функциях строки «Итого» в запросах см. в статье Суммирование или подсчет значений в таблице с помощью строки «Итого».
Действие 6. Просмотрите результаты
Чтобы увидеть результаты запроса, на вкладке «Конструктор» нажмите кнопку Выполнить. Access отобразит результаты запроса в режиме таблицы.
Чтобы вернуться в режим конструктора и внести в запрос изменения, щелкните Главная > Вид > Конструктор.
Настраивайте поля, выражения или условия и повторно выполняйте запрос, пока он не будет возвращать нужные данные.
К началу страницы
Создание запроса на выборку в веб-приложении Access
В веб-приложении Access создать такой же запрос на выборку можно почти так же, как и в приложении для классических баз данных. Нужно только выполнить несколько дополнительных действий, чтобы отобразить результаты запроса в браузере.
Важно Корпорация Майкрософт больше не рекомендует создавать и использовать веб-приложения Access в SharePoint. В качестве альтернативного средства для бизнес-решений, не требующих дополнительного программирования и работающих в браузере и на мобильных устройствах, рекомендуется использовать Microsoft PowerApps. |
-
Откройте веб-приложение в Access.
-
Выберите Главная > Дополнительно > Запрос.
-
В диалоговом окне Добавление таблицы на вкладке Таблицы, Запросы или Таблицы и запросы дважды щелкните каждый источник данных, который хотите использовать, или выберите их и нажмите кнопку Добавить. По завершении нажмите кнопку Закрыть.
-
Перетащите поля из источника в верхней области окна бланка запроса вниз в строку Поле таблицы конструктора (в нижней части окна конструктора).
-
Добавьте для полей необходимые условия.
-
Щелкните вкладку запроса правой кнопкой мыши, выберите команду Сохранить и присвойте запросу имя.
-
Чтобы увидеть результаты запроса, щелкните правой кнопкой мыши вкладку запроса и выберите пункт Режим таблицы.
Чтобы сделать результаты запроса доступными в браузере, нужно добавить представление запроса на экране выбора таблиц. Чтобы добавить новое представление в заголовок на экране выбора таблиц, выполните указанные ниже действия.
-
Щелкните заголовок таблицы в области выбора таблиц слева и нажмите кнопку Добавить представление (знак «плюс»).
-
В диалоговом окне Добавление нового представления введите имя представления в поле имя представления , выберите тип представленияи укажите имя запроса в поле Источник записей .
Совет: Если в запросе было использовано несколько таблиц, можно добавить представление для любых из них или для всех.
-
Выберите Главная > Запустить приложение чтобы открыть новое представление в браузере.
-
Если запрос поддерживает возможность обновления, щелкните имя таблицы, а затем — имя представления, чтобы добавить, изменить или удалить данные в нем.
К началу страницы
support.office.com