Какими способами можно включить поля таблиц запросов
Одним из основных инструментов обработки данных в СУБД являются запросы. В Microsoft Access имеется удобное для пользователя графическое средство формирования запроса по образцу — QBE (Query By Example), с помощью которого легко может быть построен сложный запрос.
Запрос строится на основе одной или нескольких таблиц. При этом могут использоваться таблицы базы данных, а также другие запросы. Запрос QBE содержит схему данных , включающую используемые таблицы, и бланк запроса . При конструировании запроса достаточно, работая мышью, выделить и перетащить необходимые поля из таблиц, представленных в схеме данных запроса, в бланк запроса и ввести условия отбора записей.
С помощью запроса можно выполнить следующие виды обработки данных:
- выбрать записи, удовлетворяющие условиям отбора;
- включить в результирующую таблицу запроса заданные пользователем поля;
- произвести вычисления в каждой из полученных записей;
- сгруппировать записи с одинаковыми значениями в одном или нескольких полях для выполнения над ними групповых функций;
- произвести обновление полей в выбранном подмножестве записей;
- создать новую таблицу базы данных, используя данные из существующих таблиц;
- удалить выбранное подмножество записей из таблицы базы данных;
- добавить выбранное подмножество записей в другую таблицу.
Последовательное выполнение ряда запросов позволяет решать достаточно сложные задачи, не прибегая к программированию.
В Access может быть создано несколько видов запроса:
- Запрос на выборку — выбирает данные из взаимосвязанных таблиц и других запросов. Результатом его является таблица, которая существует до закрытия запроса.
- Запрос на создание таблицы — основан на запросе выборки, но в отличие от него результат запроса сохраняется в новой таблице.
- Запросы на обновление, добавление, удаление — являются запросами действия, в результате выполнения которых изменяются данные в таблицах.
Окно запроса
Окно конструктора запросов разделено на две панели. Верхняя панель содержит схему данных запроса , которая включает выбранные для данного запроса таблицы. Таблицы представлены списками полей. Нижняя панель является бланком запроса по образцу, который нужно заполнить.
Схема данных запроса
В окне запроса отображаются выбранные таблицы и связи между ними, имеющиеся в схеме данных базы. Связи для объединения, которые не может установить Access автоматически, может создать пользователь, перетащив задействованные в связи поля из одного списка полей в другой.
Бланк запроса по образцу
Бланк запроса по образцу представлен в виде таблицы в нижней панели окна запроса. До формирования запроса эта таблица пуста.
Каждый столбец бланка относится к одному полю, с которым нужно работать в запросе. Поля могут использоваться для включения их в результат выполнения запроса, для задания сортировки по ним, а также для задания условий отбора записей.
При заполнении бланка запроса необходимо:
- в строку Поле включить имена полей, используемых в запросе;
- в строке Вывод на экран отметить поля, которые должны быть включены в результирующую таблицу;
- в строке Условие отбора задать условия отбора записей;
- в строке Сортировка выбрать порядок сортировки записей результата.
Поля бланка запроса
Каждый столбец бланка запроса соответствует одному из полей таблиц, на которых строится запрос. Кроме того, здесь может размещаться вычисляемое поле, значение которого вычисляется на основе значений других полей.
Для включения нужных полей из таблиц в соответствующие столбцы запроса можно воспользоваться следующими приемами:
- в первой строке бланка запроса Поле щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит все поля таблиц, представленных в бланке запроса;
- перетащить нужное поле из списка полей таблицы в схеме данных запроса в первую строку бланка запроса.
В списке полей каждой таблицы на первом месте стоит символ * , который означает «все поля таблицы». Этот пункт выбирается, если в запрос включаются все поля.
Для удаления поля в бланке запроса надо выделить удаляемый столбец, щелкнув кнопкой мыши в области маркировки столбца, и нажать клавишу DEL или выполнить пункт меню Правка/Удалить столбец .
После завершения конструирования запроса, его можно открыть для просмотра. Форма просмотра запроса — табличная. Однако, это таблица виртуальная, т.е. формируемая в оперативной памяти при открытии запроса. Например, для окна конструктора, показанного выше, получим следующую таблицу:
Условия отбора записей
Условием отбора является выражение, которое состоит из операторов сравнения и операндов, используемых для сравнения. В качестве операндов выражения могут использоваться: литералы , константы , идентификаторы (ссылки).
Литералом является значение, воспринимаемое буквально, а не как значение переменной или результат вычисления, например, число, строка, дата.
Константами являются не изменяющиеся значения, например, True, False, Да, Нет, Null (константы автоматически определяются в Access).
Идентификатор представляет собой ссылку на значение поля, элемент управления или свойство. Идентификаторами могут быть имена полей, таблиц, запросов, форм, отчетов и т.д. Они должны заключаться в квадратные скобки. Во многих случаях Access производит автоматическую подстановку скобок. Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком. Например, [Имя таблицы]![Имя поля] .
В выражении условия отбора допускается использование операторов сравнения и логических операторов: =, , <>, Between , In , Like , And , Or , Not , которые определяют операцию над одним или несколькими операндами. Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =.
Текстовые значения в выражении вводятся в кавычках, если они содержат пробелы или знаки препинания. В противном случае кавычки можно не вводить, они будут добавлены автоматически.
Допускается использование операторов шаблона — звездочка * и вопросительный знак ?.
Оператор Between позволяет задать интервал для числового значения. Например,
Between 10 And 100
задает интервал от 10 до 100.
Оператор In позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Например,
In («Математика», «Информатика», «История»)
Оператор Like позволяет использовать образцы, использующие символы шаблона, при поиске в текстовых полях. Например,
Условия отбора, заданные в одной строке, связываются с помощью логической операции «И», заданные в разных строках — с помощью логической операции «ИЛИ». Эти операции могут быть заданы явно в выражении условия отбора с помощью операторов AND и OR соответственно.
Сформировать условие отбора можно с помощью построителя выражений. Перейти в окно Построитель выражений можно, нажав кнопку Построить на панели инструментов, или выбрав команду Построить в контекстно-зависимом меню. Курсор мыши должен быть установлен в ячейке ввода условия отбора.
После ввода выражения в бланк и нажатия клавиши Enter Access выполняет синтаксический анализ выражения и отображает его в соответствии с результатами этого анализа.
Источник
Включение полей в запрос
В запрос не следует включать все поля выбранных таблиц.
Добавить нужные поля в бланк запроса можно путем перетаскивания их имен из списка, находящегося в верхней части окна конструктора в строку бланка Поле.
Еще один способ – двойной щелчок по имени поля.
Например, на рис.3 в бланк запроса включены поля Фамилия, Имя и Город из таблицы Студент.
Если был установлен флажок Имена таблиц из меню Вид, то во второй строке бланка QBE выйдет на экран имя таблицы, из которой выбрано поле (см. рис.3). В строке Вывод на экранфлажком помечаются те поля, которые должны быть выведены на экран.
В общем случае поля, вводимые в наборе записей запроса, наследуют свойства, заданные для соответствующих полей таблицы.
Можно определить другие значения свойств, выполнив команду Свойства из меню Вид: Описание(текст, содержащий описание объекта), Формат поля (представление данных на экране), Число десятичных знаков (для числовых данных, Маска ввода, Подпись (заголовок столбца).
Удалить поле из бланка запроса можно клавишей [Delete] или через меню Правкакомандой Удалить столбцы. Чтобы удалить таблицу, следует маркировать ее в верхней части окна конструктора запроса, выполнив щелчок по имени, и нажать [Delete] или в меню Правкакомандой Удалить.
Установка критериев отбора записей
При создании запроса можно задать критерии, вследствие чего по запросу будет осуществлен отбор только нужных записей.
Чтобы найти записи с конкретным значением, в каком либо поле, нужно ввести это значение в данное поле в строке бланка QBE Условие отбора(см. рис.3).
Например, как показано на рис.3, построен запрос, по которому из данных по баллам будут выбраны фамилии и имена студентов с оценками только 4 и 5.
Виды критериев
Для создания запроса с несколькими критериями пользуются различными операторами.
Логическая операция или
Можно задать несколько условий отбора, соединенных логическим оператором или (or), для некоторого поля одним из двух способов:
1) можно ввести все условия в одну ячейку строки Условие отбора,соединив их логическим операторомили (or). В этом случае будут выбраны данные, удовлетворяющие хотя бы одному из условий.
Or 5
соответствует тому, что будут выбраны фамилии с оценками 4 или 5.
2) ввести второе условие в отдельную ячейку строки или.И если используется несколько строк или, то чтобы запись была выбрана, достаточно выполнения условий хотя бы в одной из строк или, как, например, показано на рис. 4.
Рис 4. Пример записи условия с использованием оператора или (or).
При такой записи условия также будут выбраны фамилии с оценками 4 или 5.
Логическая операция и
Логическая операцияи(and) используется в том случае, когда должны быть выполнены оба условия и только в этом случае запись будет выбрана.
Например, записав условие
>2 and 4
В этом случае можно не использовать кавычки.
Операторы ии или применяются как отдельно, так и в комбинации. Следует помнить, что условия связанные оператором ивыполняются раньше условий, объединенных оператором или.
Оператор Between
Оператор Between позволяет задать диапазон значений, например:
Источник
Какими способами можно включить поля таблиц запросов
7. Формирование запросов в СУБД Access
7.1. Возможности , типы и способы создания запросов
Запрос – это важнейший инструмент для извлечения информации из одной или нескольких таблиц БД. Посредством запроса можно вносить изменения в саму БД. Запрос может служить источником данных для форм, отчетов и страниц доступа к данным. Его результатом является новая таблица , которая может быть просмотрена, проанализирована, а затем сохранена или не сохранена.
Запросы позволяют решать многие задачи, не прибегая к программированию. Например, представлять данные в агрегированном виде, производить вычисления над полями БД, группировать записи и находить для полей итоговые значения с помощью статистических функций: Sum , Avg ( соответственно сумма, среднее значений поля); Max , Min (соответственно максимальное, минимальное значение поля); Count (число значений поля) и др.
СУБД Access позволяет создавать запросы трех типов: запросы выбора, перекрестные запросы, запросы действия.
Запрос выбора является наиболее часто используемым типом запроса. Он дает возможность: выбирать записи, удовлетворяющие условиям отбора; включать в результирующую таблицу поля из одной или нескольких таблиц в нужном порядке; осуществлять вычисления над полями БД; выполнять статистические расчеты для групп записей. Разновидностью запроса выбора является запрос с параметрами — это запрос, при выполнении отображающий в собственном диалоговом окне приглашение ввести интересующее пользователя значение критерия отбора записей.
Перекрестный запрос представляет собой специальный запрос итогового типа. Он отображает результаты итоговых статистических расчетов над значениями некоторого поля в виде перекрестной таблицы. В ней значения одного или нескольких столбцов слева образуют заголовки строк, верхняя строка – заголовки столбцов из значений определенного поля, а на пересечении строк и столбцов – итоговые значения.
Запрос действия – это запрос , который вносит изменения в саму БД. Существует четыре типа запросов действия:
1) запрос на удаление — удаляет группу записей из одной таблицы или нескольких взаимосвязанных таблиц БД, для которых задано каскадное удаление связанных записей;
2) запрос на обновление — служит для изменения информации в полях таблицы БД;
3) запрос на добавление — производит добавление записей из таблицы с результатами запроса в таблицу БД;
4) запрос на создание таблицы — создает новую таблицу на основе всех или части данных из одной или нескольких таблиц БД. Этот запрос полезен в случае: создания таблицы для экспорта в другую БД Access; создания страниц доступа к данным, отображающих данные соответственно указанному моменту времени; создания резервной копии таблицы; создания архивной таблицы, содержащей старые записи.
СУБД Access позволяет создавать запросы с помощью Мастеров и с помощью Конструктора. Мастера используются для создания следующих запросов:
· простого запроса на выборку полей из источника запроса и подведение итогов;
· запроса на поиск повторяющихся записей в таблице;
· запроса на поиск записей, не имеющих подчиненных им записей в другой таблице.
С помощью Конструктора можно создать любой запрос выбора, перекрестный запрос, запрос действия.
7.2. Создание запроса выбора
Для создания запроса выбора с помощью Конструктора необходимо открыть окно Конструктора запроса, выполнив действия:
Окно БД Þ объект Запросы Þ [Создать] Þ
окно Новый запрос Þ выбрать Конструктор Þ
окно Добавление таблицы Þ выбрать таблицы-источники запроса Þ
Окно Конструктора запроса имеет вид как на рис. 1.
Рис. 1. Окно Конструктора запроса
Оно разделено на две панели.
Верхняя панель содержит схему данных запроса. В ней представлены списки полей, выбранных в качестве источника запроса таблиц и запросов. Если ранее была создана связь между этими таблицами, то она показывается на схеме данных. В противном случае может отображаться связь, автоматически созданная системой Access . Пользователь может сам установить новую связь между таблицами.
Нижняя панель есть бланк запроса по образцу ( QBE -запроса). Он представлен в виде таблицы, предназначенной для определения структуры результирующей таблицы запроса и задания условий отбора данных из таблиц. Каждый столбец бланка относится к одному полю таблицы. Строки бланка имеют следующее назначение:
· Поле – указывает имена полей , участвующих в формировании запроса;
· Имя таблицы — указывает имена таблиц, которым принадлежат эти поля;
· Сортировка – дает возможность отсортировать записи в результирующей таблице запроса;
· Вывод на экран – позволяет управлять отображением полей в этой таблице;
· Условие отбора – служит для задания условий отбора записей;
· или – позволяет объединять условия отбора логической операцией ИЛИ. При этом условия отбора могут указываться в нескольких строках бланка запроса.
Включение отдельных полей в бланк запроса можно выполнить одним из следующих способов:
· перетащить поле из списка полей в крайнюю слева свободную клетку строки Поле;
· дважды щелкнуть по имени поля в списке полей ;
· щелкнуть в клетке строки Поле и из раскрывающегося списка выбрать нужное поле.
Включение в бланк запроса всех полей таблицы можно выполнить, если:
· дважды щелкнуть по имени таблицы и перетащить все выделенные поля в клетку строки Поле ;
· перетащить звездочку , стоящую под заголовком таблицы, в клетку строки Поле . При этом в клетке отобразится только имя таблицы со звездочкой, но в результат запроса будут включены все поля таблицы.
Для очистки отдельных столбцов бланка запроса используется команда
Правка / Удалить столбцы
Для очистки всего бланка запроса служит команда
Правка / Очистить бланк
Формирование запроса на вывод полей из одной или нескольких таблиц
Перетаскиваются из списков полей в строку Поле только те поля, которые должны присутствовать в результирующей таблице запроса, или все поля всех таблиц, а затем в сроке Вывод на экран отмечаются флажками только нужные.
Формирование запроса с применением сортировки
Сортировка возможна по одному или нескольким полям одновременно. Для сортировки по нескольким полям поля располагаются в бланке запроса в том порядке, в котором требуется выполнять сортировку. В Access записи сортируются сначала по самому левому полю, затем по полю, расположенному в следующем столбце справа и т.д. Для задания порядка сортировки необходимо щелкнуть в строке Сортировка для поля, по которому сортируются записи, и из раскрывающегося списка выбрать – по возрастанию или по убыванию.
Формирование запроса с условиями отбора
Условия отбора — это ограничения, накладываемые на запрос для определения записей, включаемых в результирующую таблицу запроса. Они задаются выражениями в строках Условие отбора , или .
Если выражения вводятся в несколько клеток одной строки Условие отбора , то они автоматически объединяются с помощью логического оператора And. Если выражения вводятся в разные строки бланка запроса, то Access объединяет их логическим оператором Or.
В условии отбора может быть использована конструкция Between (между). Например , Between 100 and 200.
Формирование запроса с вычисляемым полем
Для создания вычисляемого поля в пустую клетку строки Поле вводится имя вычисляемого поля с двоеточием, после которого – выражение. Например,
Если выражение сложное, то для его создания целесообразно использовать построитель выражений.
Формирование запроса с группировкой
Часто требуется в таблице видеть не все записи, а только итоговые значения по группам записей. Расчет итогов для некоторых полей групп производится с помощью статистических функций, которые были описаны выше.
Для создания запроса с группировкой выполняется следующее:
· перетаскивается в первую клетку строки Поле то поле, по которому производится группировка записей. Затем перетаскиваются в последующие клетки поля, по которым подводятся итоги;
· вводится команда Вид / Групповые операции. В бланке запроса появляется новая строка Групповая операция , в которой для всех полей указано Группировка;
· в строке Групповая операция для полей, по которым подводятся итоги, производятся щелчки и из раскрывающегося списка выбирается требуемая статистическая функция.
Формирование запроса с параметрами
Если необходимо часто выполнять один и тот же запрос выбора, меняя только в условиях отбора значения полей, то целесообразно создать запрос с параметрами. В строках Условие отбора, или для полей, играющих роль параметров, вводится в квадратных скобках текст приглашения на ввод интересующих пользователя значений этих полей. Этот текст будет выводиться в диалоговом окне Введите значение параметра при выполнении запроса.
7. 3. Создание перекрестного запроса
Создание перекрестного запроса с помощью Конструктора начинается с открытия окна Конструктора запроса. В этом окне в бланк запроса последовательно перетаскиваются:
· поля, значения которых будут заголовками строк перекрестной таблицы;
· поле, значения которого будут заголовками столбцов перекрестной таблицы;
· поле, по которому подводится итог с использованием статистической функции.
Затем выполняется команда Запрос / Перекрестный. В результате в бланке запроса появятся две новые строки: Групповая операция и Перекрестная таблица. В строке Перекрестная таблица для полей со значениями в роли заголовков строк выбирается из раскрывающегося списка значение Заголовки строк, а для поля со значениями в роли заголовков столбцов – Заголовки столбцов. В строке Групповая операция для поля, по которому подводится итог, из раскрывающегося списка выбирается необходимая статистическая функция.
7.4. Создание запросов действия
Формирование запроса на создание таблицы БД
После открытия окна конструктора запроса вводится команда
Запрос / Создание таблицы
В появившемся окне Создание таблицы указывается имя создаваемой таблицы и куда ее следует поместить – в текущую БД или в другую БД. Затем из списков полей перетаскиваются в бланк запроса поля, которые должны быть в этой таблице, и при необходимости задаются условия отбора записей. После выполнения запроса новая таблица будет в списке таблиц окна БД.
Формирование запроса на обновление полей таблицы БД
После открытия окна конструктора запроса вводится команда
В бланке запроса появится новая строка Обновление. Затем в бланк запроса перетаскиваются все поля таблицы, и для полей, подлежащих обновлению, в строке Обновление задаются выражения, значения которых будут новыми значениями обновляемых полей. При необходимости обновления значений полей только в некоторых записях задаются условия отбора записей.
Формирование запроса на добавление записей к таблице БД
При открытии окна конструктора запроса в качестве источника запроса указывается таблица, из которой добавляются записи в другую таблицу. Записи таблицы-источника должны содержать такие же поля, что и пополняемая таблица БД. В окне конструктора запроса вводится команда Запрос / Добавление. Появится диалоговое окно Добавление, в котором требуется указать имя пополняемой таблицы и где эта таблица находится – в текущей БД или в другой БД. Кроме того, в бланке запроса появится новая строка Добавление.
Затем перетаскиваются те поля из списка полей таблицы-источника, которые совпадают с полями пополняемой таблицы. Их имена Access автоматически укажет в строке Добавление как имена полей пополняемой таблицы.
Формирование запроса на удаление записей из таблицы БД
Если между таблицами установлена связь с обеспечением целостности данных, но без каскадного удаления записей, то прежде составляется запрос на удаление записей из подчиненной таблицы, а затем – из главной.
В этом случае при удалении записей из подчиненной таблицы в окне конструктора запроса вводится команда Запрос / Удаление . В результате в бланке запроса появится новая строка Удаление. Тогда из списка полей подчиненной таблицы перетаскивается в бланк запроса символ звездочки (*), после чего в строке Удаление для этого поля отобразится значение Из. Затем из списка полей главной таблицы перетаскиваются поля, участвующие в условии отбора удаляемых записей, и для них в строке Удаление появится значение Условие. После этого задаются условия отбора удаляемых записей.
Если связь между таблицами с обеспечением целостности данных и с каскадным удалением записей, то создается запрос на удаление записей только из главной таблицы.
При составлении запроса на удаление записей из главной таблицы (в обоих случаях) в окне конструктора запроса вводится команда Запрос / Удаление.
В бланк за п роса перетаскиваются поля, участвующие в условиях отбора записей на удаление, и задаются условия отбора.
7.5. Выполнение и сохранение запроса
После формирования запроса его необходимо выполнить. Из окна Конструктора запроса это можно сделать, введя одну из команд:
Вид / Режим таблицы
Если результаты выполнения запроса не удовлетворяют, то можно вернуться к окну Конструктора запроса для его модификации по команде Вид / Конструктор . В противном случае результат запроса можно сохранить с помощью команды Файл / Сохранить или произведя закрытие окна Конструктора запроса.
7 . Формирование запросов в СУБД Access
Тренировочные задания
1. Создать многотабличный запрос на вывод из БД ДЕКАНАТ-БУХГАЛТЕРИЯ сведений о студентах следующей структуры:
В запросе записи рассортировать по алфавитному порядку ФИО.
2. Создать запрос на вывод из БД сведений о семейных студентах (которые женаты или замужем). Результирующая таблица запроса должна иметь следующую структуру:
3. Создать запрос на вывод из БД сведений о неуспевающих студентах (у которых оценка и по информатике, и по математике 2). Результирующая таблица запроса должна быть следующей структуры:
НОМ_ЗАЧ | ФИО | ГРУП | ОЦ_ПО_ИНФ | ОЦ_ПО_МАТЕМ |
4. Создать параметрический запрос, дающий возможность выводить из БД сведения об успеваемости студентов любой группы. Результирующая таблица запроса должна быть следующей структуры:
ГРУП | НОМ_ЗАЧ | ФИО | ОЦ_ПО_ИНФ | ОЦ_ПО_МАТЕМ |
5. Создать запрос, в котором рассчитать для каждого студента средний балл, полученный им в сессию. Результирующая таблица запроса должна быть следующей структуры:
ГРУП | ФИО | ОЦ_ПО_МАТЕМ | ОЦ_ПО_ИНФ | СРЕДН_БАЛЛ |
6. Создать итоговый запрос, позволяющий для каждого студента рассчитать сумму всех начислений. Результирующая таблица запроса должна иметь следующую структуру:
7. Создать перекрестный запрос, в котором для каждой группы получить суммы начислений по их видам. Результирующая таблица запроса должна иметь следующую структуру:
ГРУП | МАТ_ПОМ | НАДБАВ | ПРЕМИЯ | СТИП |
Запрос сохранить с именем К_ОТЧЕТУ.
8. Создать запрос действия , позволяющий в таблице УСПЕВАЕМОСТЬ обновить поле КУРС: для студентов, не имеющих оценок 2, увеличить его значение на единицу.
7. Формирование запросов в СУБД Access
1 . Каково назначение запросов выбора ?
2 . Когда создается параметрический запрос ?
3 . Что собой представляет перекрестный запрос ?
4 . Перечислите типы запросов действия .
5 . Назовите возможные способы создания запросов в СУБД Access.
6. В виде чего выводится результат запроса?
7. Какую структуру имеет бланк запроса, отображаемый в окне Конструктора запроса
8. Как создается вычисляемое поле в запросе?
9. Какая команда используется для выполнения запроса из окна Конструктора запроса?
10. Можно ли сохранить результат запроса?
Источник