Создание и использование запроса
Запрос – это вопрос о данных. существуют разные типы запросов (на выборку, запрос с параметрами, перекрестные запросы, запрос на изменение таблицы, запросы SQL).
Запрос-выборка. Простейший из запросов – это производная таблица, которая содержит те же структурные элементы, что и обычная таблица (столбцы-поля и строки), и формируется на основе фактических данных БД. Запрос на выборку отбирает данные из одной или более таблиц по заданным условиям, а затем отображает их в нужном порядке. Запрос можно создать с помощью мастера или самостоятельно в режиме конструктора, выбрав таблицы или запросы, содержащие нужные данные, и заполнив бланк запроса.
При создании макета запроса (т.е. производной таблицы) в общем случае нам необходимо выполнить следующие базовые операции:
§ Указать системе, какие поля и из каких таблиц мы хотим включить в запрос
§ Описать вычисляемые поля, т.е. поля, значения которых являются функциями значений существующих полей (например, средняя успеваемость – среднее арифметическое значение всех оценок)
§ Описать групповые операции над записями исходных таблиц (например, нужно ли объединить группу записей и указать условие отбора для расчета среднего значения роста учащихся класса)
При разработке конкретного запроса допускается любое сочетание базовых операций.
Создание запроса-выборки с помощью мастера. Мастер простого запроса на выборку создает запросы для получения данных из полей, выбранных в одной или нескольких таблицах или запросах. с помощью мастера можно также вычислять суммы, количества и средние значения для всех записей или определенных групп записей, а также находить максимальное и минимальное значение в поле. Однако нельзя ограничить количество записей, возвращаемых этим запросом, с помощью условий отбора.
Для создания запроса выберете в окне БД Группа значок Запросы в списке Объекты и нажмите кнопку Создать на панели инструментов. В диалоговом окне Новый запрос выберете мастера Простой запрос и нажмите кнопку ОК.
Укажите имя таблицы Учащиеся, на которой будет основан создаваемый запрос, а затем выберете поля, данные которых нужно использовать.
Следуя инструкциям Мастера, выберем вариант подробный отчет и щелкнем кнопку Далее. В последнем диалоговом окне зададим имя запроса Запрос1 и запустим полученный запрос, выбрав вариант Открыть запрос для просмотра данныхи щелкнув кнопку Готово.
Фамилия | Имя | Отчество | Пол | Дата рождения | Домашний адрес | Класс |
Епишев | Павел | Семенович | ٧ | 19 апреля 1988 г. | Ул. Киевская,78-92 | 5Б |
Иванов | Павел | Николаевич | ٧ | 6 июля 1988 г. | Ул. Горького,35-14 | 5А |
Лынова | Екатери | Михайловна | 3 августа 1988 г. | Ул. Смоленская, 17-35 | 4В | |
Петров | Иван | Васильевич | ٧ | 12 марта 1989 г. | Ул. Горького,12-34 | 4А |
Сидоров | Василий | Николаевич | ٧ | 3 декабря 1988 г. | Ул. Карбышева,34-123 | 4Б |
Яковлев | Иван | Семенович | ٧ | 15 января 1989 г. | Пер. Садовый, 45-28 | 4В |
Выбрав команду Режим SQL в меню Вид, можно увидеть текст созданного запроса на языке SQL:
SELECT [Учащиеся].[Фамилия], [Учащиеся].[Имя], [Учащиеся].[Отчество], [Учащиеся].[Пол], [Учащиеся].[Дата рождения], [Учащиеся].[Домашний адрес], [Учащиеся].[Класс]
FROM Учащиеся;
Примечание. Для получения подробной справки о создании запроса вызовите справочную систему Access и на вкладке Мастер ответов задайте текст вопроса «Создание запроса». Затем в списке найденных разделов выберете раздел Создание запроса и изучите справочную информацию в правой части окна справки.
Если получится не тот запрос, который был нужен, можно снова запустить мастера или изменить этот запрос в режиме конструктора. Откроем созданный запрос в режиме Конструктор. В верхней части этого окна показана схема данных выбранных таблиц с указанием связей и имен всех полей, в данном случае таблица Учащиеся. В нижней части окна размещается бланк QBE, который представляет собой макет некой таблицы. Столбцы этой таблицы соответствуют полям создаваемого запроса, а число строк переменно и зависит от состояния флажков «Имена таблиц» и «Групповые операции» (на панели инструментов или в пункте Вид). В строке Поле: указываются имена столбцов (полей ) создаваемого запроса. Существующее имя можно выбрать из раскрывающегося списка (щелкнув мышью на поле) или просто перенести в ячейку Поле: из таблицы Учащиесяв верхней части окна запроса. В первом столбце разместим поле Фамилия, во втором – Имя и т.д. В ячейке Имя таблицы: (она появляется в бланке, если установлен флажок «Имена таблиц») отображается имя таблицы, которая содержит выбранное поле (таблица Учащиеся).
Если бы в строке Поле: размещалось вычисляемое поле, тогда в ячейке этой строки нужно было бы ввести формулу: <Имя поля>:<Выражение>
Например: Стоимость: [Количество]*[Цена]
В строке Сортировка: можно указать порядок вывода на экран записей (по возрастанию, по убыванию)
В поле Вывод на экран: находятся флажки, установив или сбросив флажок, мы разрешим или запретим вывод данного столбца на экран.
Если бы мы собирались проводить в запросе групповые операции (т.е. объединять записи в группы), нужно было бы включить флажок «Групповые операции» - появляется строка Групповая операция: После щелчка на любом поле этой строки появится список типов групповых операций: Группировка, Sum, Count (сосчитать), Выражение и др.
Например, если в качестве типа групповой операции в столбце указать Count,то получим количество записей, соответствующих запросу в этой группе.
В строках Условие отбора: и или: можно указать условие или логические выражения, которые позволяют нам отобрать для запроса только записи, удовлетворяющие заданному условию.
Соглашения, предусмотренные в Access:
1. Условные выражения, набранные в разных столбцах строки Условие отбора, по умолчанию соединяются между собой знаком AND. Например, если соседние столбцы имеют имена Поли Класс и вы набрали в них =True и =5Б, то тем самым вы сформулировали логическое выражение: Пол= True и Класс=5Б.
2. Условные выражения, набранные в соседних строках одного и того же столбца, соединяются между собой знаком OR. Например, если столбец имеет имя Класс и мы набрали в строке Условие отбора:=4А, а в строке или:=5А, то тем самым мы сформулировали логическое выражение: [Класс]=4А Or [Класс]=5А.
Изменим запрос, добавив условие отбора только тех учащихся, которые не имеют мужской пол. Для этого установим курсор в столбце Пол на строке Условие отбора и, щелкнув правую кнопку мыши, вызовем контекстное меню, а в меню выберем команду Построить. В списке папок построителя выражений, щелкнув папку Запрос1, раскроем список полей. дважды щелкнув поле Пол, включим это поле в область выражений. Щелкнув оператор «=», включим его в выражение.
Выбрав папку Константы, в списке констант дважды щелкнем на значении «Ложь». Щелкнув ОК, завершим построение логического выражения.
Выбрав в меню Вид команду Режим SQL, можно посмотреть запись созданного запроса на языке SQL:
SELECT Учащиеся. Фамилия, Учащиеся. Имя, Учащиеся. Отчество, Учащиеся. Пол, Учащиеся.[Дата рождения], Учащиеся. [Домашний адрес], Учащиеся. Класс