Существует несколько типов запросов: на выборку, на
добавление, на удаление, на обновление, запрос на создание таблиц,
перекрестный запрос.
Запросы могут создаваться двумя способами: «вручную» и
с помощью мастера. Имеется четыре мастера запросов:
Простой
запрос |
Служит для создания простых запросов на
основе выбранных полей. |
Перекрестный запрос |
Позволяет в компактной форме выводить
данные, объединяя однотипную информацию, а также вычисляет сумму, среднее
значение, число элементов и значения других статистических функций данных
определенных категорий. |
Повторяющиеся
записи |
Запрос такого типа позволяет выбирать из
таблицы или простого запроса повторяющиеся записи. |
Записи
без подчиненных |
Такой запрос выбирает из таблицы записи,
не связанные с записями из другой таблицы. |
С помощью Конструктора запросы создаются
«вручную».
При создании макета запроса в общем случае необходимо
выполнить следующие базовые операции:
1)
указать системе,
какие поля и из каких таблиц мы хотим включить в запрос;
2)
указать тип
запроса (по умолчанию установлен запрос на выборку);
3)
при необходимости
описать вычисляемые поля, то есть поля, значения которых являются функциями
значений существующих полей;
4)
описать групповые
операции над записями исходных таблиц;
5)
описать условия
отбора, то есть сформулировать логическое выражение, которое позволит включить
в выборку только записи, удовлетворяющие определенному условию.
При разработке конкретного запроса допускается любое
сочетание перечисленных операций.
Простые
запросы
Задание 9
Создать
запрос Адреса для вывода фамилий, имен и адресов студентов.
1)
перейдем на
вкладку Запросы и щелкнем на кнопке Создать
с помощью мастера, чтобы перейти к созданию запроса;
2)
на экране
появится диалоговое окно Новый запрос, предназначенное для
выбора способа построения запроса;
3) выберем значение Простои запрос и нажмем кнопку ОК;
4)
в первом
диалоговом окне в списке Таблицы/Запросы выберем таблицу, поля
которой будут анализироваться при выполнении запроса (Сведения о студентах);
5)
в списке Доступные
поля отметим поле Фамилия и перенесем его в список Выбранные
поля:
6)
те же действия
выполним для полей Имя и Адрес.
Нажмем кнопку Далее;
7)
в последнем окне
присвоим запросу имя Адреса. После этого нажмем кнопку Готово.
При формировании запросов на выборку данных,
соответствующих каким-либо условиям, используют выражения – формулы для
фильтрации данных. Например,
введем в поле номера >4
– отбор записей, номер которых больше 4;
для даты
рождения >12.07.76, - вывод всех,
кто родился позже указанной даты;
для фамилий И*
– отбор начинающихся на указанную букву.
Примеры
использования символов задания шаблонов
Использования символов |
Образец |
Поиск в Access |
? обозначает один любой символ |
И?анов |
Иванов Ипанов Исанов |
* обозначает любое количество любых символов |
Д*нь |
Добрый день День Длинная тень |
*а |
Петрова Анна Васильевна |
|
# обозначает любую цифру |
#-й |
1-й 9-й |
Кроме
операций сравнения можно использовать арифметические (+ - * / ^), логические (Or, And, Not),
например, введем в поле фамилия >=В* and <= Д*,- отбор записей, чья фамилия
начинается на букву от В до Д
Примеры условных выражений
Условные выражения |
Вывод записей, которые |
Пермь |
Имеют значение Пермь |
Not Пермь |
Не имеют значение Пермь |
<М* |
Начинаются на букву от А-Л |
>О* |
Начинаются на букву от П-Я |
50 |
Имеют значение 50 |
>01.01.2004 |
Имеют значение даты позднее 01.01.2004 |
**.02.** |
Имеют значение месяца февраль |
Like
“P*” |
Начинаются с буквы Р |
Кроме
этого есть ряд специфических операций, а также функции. Примеры можно найти в
справочной системе (в разделе "создание выражений").
Задание 10.
Создать запрос, отображающий список
студентов мужского пола в алфавитном порядке.
1) Для выполнения задания воспользуемся конструктором
запросов. Активируем в левом меню БД объект запросы и вызовем режим создания
запроса с помощью конструктора.
Рис. 14. Диалоговое окно создания
запроса.
Добавим в конструктор
таблицу «Сведения о студентах»
Рис. 15.
Окно конструктора запроса.
Окно, которое появится вслед за этим, называется Окно
конструктора запроса. Это основное средство работы с запросами. Оно
позволяет не только сформировать новый запрос, но и понять, по какому принципу
построен любой из уже существующих.
Рис. 16. Режим конструктора запроса
В верхней половине отображается выбранная таблица.
Нижняя часть окна - бланк запроса - содержит описание
запроса в табличной форме. Каждая колонка в нем отвечает одному полю. Строки Поле и Имя таблицы содержат списки,
которые позволяют определить нужное поле.
2) Щелчком мыши в строке поле активируем список и
последовательно выберем все поля таблицы Таблица
расширяется вправо автоматически, когда пользователь добавляет в запрос новые
поля.
3) Заполнив строку Условие отбора, мы сможем произвести
выборку из базы данных. В поле «Пол» в строку Условие отбора внести букву «м» -
в том формате, (в котором вносилась информация в таблицу!, то
есть маленькая русская буква без кавычек и точек)
4) В поле «Фамилия» в строке Сортировка выбрать «По
возрастанию»
5) Закрыть окно конструктора, присвоив запросу имя «1
отдел»
Задание 11.
Создать запрос, позволяющий выбрать
данные на конкретного студента(Параметрический.)
1) С помощью конструктора создать новый запрос на основе
таблицы Сведения о студентах, выбрав последовательно все поля.
2) В поле Фамилия в строке Условие отбора внести текст в квадратных скобках «Введи фамилию». Текст должен
выглядеть так: [Введи фамилию].
3) Сохранить запрос с именем Фамилия.
4) Выполнить запрос.
Самостоятельная работа № 3
1.
Создайте запрос Телефоны,
позволяющий выводить фамилии, имена, телефоны студентов.
2.
Измените запрос так, чтобы можно было получить данные одного
конкретного студента
3.
Отобразите список
студентов, имена которых начинаются на любую одну и ту же букву.
Microsoft Access предоставляет пользователю возможность
создавать более сложные выражения с помощью построителя выражений. Построитель
предоставляет список часто используемых выражений, из которого их можно выбрать.
Для запуска построителя выражений необходимо выполнить
следующие действия:
1)
открыть запрос в
режиме конструктора;
2)
установить
указатель в позицию, в которую требуется ввести выражение, и нажать правую
клавишу мыши;
3)
в контекстном
меню выбрать команду Построить. Другой вариант -нажать кнопку Построить на панели инструментов.
Построитель выражений состоит из трех разделов.
Рис 17. Построитель выражений
В верхней части окна построителя расположено поле
выражения. Ниже находится раздел, предназначенный для создания элементов
выражения и их последующей вставки в поле выражения. Допускается
непосредственный ввод части выражения в поле выражения.
Существуют определенные требования к синтаксису
выражений. Например, символьные данные заключаются в кавычки, даты в знак #.
В средней части окна построителя находятся кнопки с
часто используемыми операторами. При нажатии на одну из этих кнопок
построитель вставит соответствующий оператор в текущую позицию поля выражения.
Кроме традиционных знаков математических действий
существует еще несколько операторов:
\ |
Обратная косая черта обозначает деление
целых частей делимого и делителя. Результат округляется до целых. |
^ |
Возведение в степень. |
Mod |
Операция получения остатка от деления
целых частей аргументов. |
& |
Используется для «сложения» данных
символьного типа. Можно использовать и более привычный знак «плюс». |
Like |
Используется
для создания масок при определении строк с неизвестными символами и требует
дополнительных специальных символов и правил синтаксиса. Например, ? - знак
вопроса означает любой одиночный символ * - звездочка
означает любую последовательность символов # -
обозначает любую неизвестную цифру. |
And Or Not |
Логические операторы также используются
для построения условий отбора. Они могут применяться к двум или нескольким
выражениям и используются со скобками. |
Чтобы вывести полный список операторов, выберите папку
Операторы в нижнем левом поле и нужный тип в среднем поле. В правом поле будут
выведены все операторы выбранного типа.
В нижней части окна построителя находятся три поля.
В левом поле выводятся папки, содержащие таблицы,
запросы, формы, объекты базы данных, встроенные и определенные пользователем
функции, константы, операторы и общие выражения.
В среднем поле задаются определенные элементы или типы
элементов для папки, заданной в левом поле. Например, если выбрать в левом поле
Встроенные функции, то в среднем поле появится список всех типов функций Microsoft Access.
В правом поле выводится список значений (если они
существуют) для элементов, заданных левым и средним полями. Например, если
выбрать в левом поле Встроенные функции и тип функции в среднем, то в правом
поле будет выведен список всех встроенных функций выбранного типа.
Задание
12.
С помощью
построителя выражений указать фамилии учениц, имеющих средний балл меньше 3.
Для решения поставленной задачи можно воспользоваться
готовым запросом Рейтинг студентов.
Выполним следующие действия:
1)
в окне базы
данных перейдем на вкладку Запросы и
щелкнем на кнопке Создать, чтобы перейти к
созданию запроса;
2)
на экране
появится диалоговое окно Новый запрос,
предназначенное для выбора способа построения запроса;
3)
выберем значение Конструктор и нажмем кнопку ОК;
4)
добавим таблицу
Сведения о студентах, необходимую для создания запроса и запрос Рейтинг
студентов;
5)
в первую колонку
строки Поле бланка запроса поместим поле Фамилия таблицы Сведения о студентах;
6)
в строке
Сортировка установим значение по возрастанию;
7)
во вторую колонку
поместим поле Avg_оценка,
в котором хранятся средние значения;
8)
в строке Условие
отбора запустим Построитель выражений;
9)
в левой части
построителя выберем объект Запрос, а из раскрывшегося списка - запрос Рейтинг
студентов;
10)
в средней части
построителя выражений выберем поле, необходимое для построение выражения - Avg_оценка и вставим его в поле
выражений;
11)
зададим значение
<3. Таким образом, мы задали отбор тех студентов группы, у которых средний
балл меньше 3;
12)
продолжим строить
выражение и зададим условие, отбирающее только студенток группы. Для этого
внесем в поле выражений логический оператор And;
13)
аналогично,
выберем таблицу Сведения о студентах и поле Пол;
14)
укажем условие
отбора - ~ "ж";
15)
нажмем кнопку ОК после чего окно построителя закроется и мы вернемся в
бланк запроса;
16)
снимем флажок в
строке Вывод на экран столбца Avg_оценка;
17)
сохраним запрос.
Группировка в запросах
Создать
запрос Рейтинг студентов для подсчета
среднего балла каждого студента в группе.
Для улучшения качества запроса вместо кодов студентов,
применяемых в таблице «Годовая
успеваемость группы» (в ней собраны сведения по успеваемости), укажем
соответствующие фамилии и имена из таблицы Сведения
о студентах.
Таким образом, для решения данной задачи мы будем
использовать две таблицы.
Помните, что при составлении запроса на основе
нескольких таблиц между ними необходимо установить связь, задав отношения между
полями. В противном случае результат обработки
запроса может оказаться некорректным.
В нашем случае отношение между таблицами уже задано,
между полями таблиц проведена линия.
1)
в окне базы
данных перейдем на вкладку Запросы и щелкнем на кнопке Создать, чтобы перейти к созданию
запроса;
2)
на экране
появится диалоговое окно Новый запрос, предназначенное для
выбора способа построения запроса;
3)
выберем значение Конструктор
и нажмем кнопку ОК;
4)
в результате на
экране появится два окна: окно конструктора запросов Запрос: Запрос
на выборку и окно выбора таблиц Добавление таблицы. Окно
Добавление таблицы состоит из трех вкладок, содержащих перечни объектов,
предлагаемых программой для проектирования запроса: Таблицы, Запросы, Таблицы
и запросы. В бланке запроса укажем параметры запроса и данные, которые нужно
отобрать, а также способ их отображения на экране;
5)
перейдем на
вкладку Таблицы, маркируем таблицу Сведения
о студентах и щелкнем на кнопке Добавить. Затем маркируем таблицу Успеваемость группы и снова выполним щелчок на кнопке Добавить. Закроем диалоговое окно
(кнопка Закрыть). В окне
проектирования запроса появятся имена выбранных таблиц;
6)
установим тип
запроса Выборка, нажав кнопку Тип запроса на панели инструментов;
7)
выполним двойной
щелчок на поле Фамилия таблицы
Сведения о студентах. В результате имя этого поля будет помещено в строку Поле
бланка запроса. Добавить нужные поля в бланк запроса можно также
перетаскиванием их имен из списка, находящегося в верхней части окна
конструктора, в строку бланка Поле,
8)
аналогично во
вторую колонку строки Поле вставим имя поля Имя
из таблицы Сведения о студентах;
9)
для упорядочения
отобранных записей по алфавиту воспользуемся возможностями сортировки самого
запроса. Для этого в строке Сортировка столбца
Фамилия откроем список значений и
зададим сортировку данных по возрастанию;
10) аналогичные операции выполним для поля Имя таблицы
Сведения о студентах;
11) вставим в бланк запроса поле Оценка из таблицы Годовая
Успеваемость группы;
12) в бланке запроса добавим строку Групповые операции;
13) в полях Фамилия и Имя строки
Групповые операции установим значение Группировка:
14) в поле Оценка установим значение Avg.
Нам необходимо, чтобы после запятой стояло только одно число (например, 3.4 или
4.5). Для этого пало указать формат вывода результатов в запросе. Выполним
следующие операции: в строке Групповая операция поля Оценка щелкнем правой клавишей мыши и из раскрывшегося меню выберем
команду Свойства. В строке Формат
поля окна Свойства поля введем значение Фиксированный, а в поле Число десятичных знаков -числовой. Можно также указать подпись
поля - Средний балл.
15) сохраним запрос с именем Рейтинг студентов.
Самостоятельная работа № 4
1.
Исправьте запрос
Рейтинг студентов так, чтобы
выводились данные только хорошо
успевающих студентов.
2.
Создать запрос
Наименьшая оценка, позволяющий выводить минимальную оценку каждого студента
группы.
Сложные
запросы
Некоторые виды запросов направлены на
изменение данных непосредственно в
таблицах. Выполнение таких заданий требует повышенного внимания. Перед выполнением
таких запросов рекомендуется создать резервную копию таблицы.
Используя запрос на обновление, пользователь может
изменить группу записей, отобранную на основе определенных критериев.
Для создания запроса на обновление выполните
следующее:
1)
предварительно
составьте запрос на выборку;
2)
затем выполните
составленный запрос и оцените результат, переключившись в режим таблицы с
помощью команды Режим таблицы из меню Вид;
3)
после этого
вернитесь в режим конструктора и активизируйте команду Обновление из меню
Запрос;
4)
Access 97 добавит
в бланк запроса строку Обновление, которая предназначена для указания новых
значений полей таблицы. В качестве таковых могут выступать и вычисляемые
выражения;
5)
в специальном
диалоговом окне Access укажет, сколько записей будет изменено в таблице, и
потребует подтвердить выполнение этой операции.
Задание
13.
Используя
запрос Оценки студента и возможности запроса на обновление, измените все оценки
какого-либо студента на 5.
На основе записей, отобранных запросом можно построить
новую таблицу с помощью запроса на создание таблицы. Такие запросы обычно
применяют для архивирования старых записей или для сохранения резервных копий
таблиц.
Выполните следующее:
1)
предварительно
подготовьте запрос на выборку;
2)
выполните
составленный запрос для проверки его правильности;
3)
вернитесь в режим
конструктора и в меню Запрос выберите команда Создание таблицы, в которое
необходимо ввести имя новой таблицы;
4)
выполните запрос,
нажав кнопку с восклицательным знаком на панели инструментов;
5)
в специальном
окне Access укажет, сколько записей добавляется с новую таблицу, и потребует
подтвердить выполнение этой операции.
Задание 14
С помощью
запроса Дата рождения и запроса на создание таблицы создайте таблицу Выборка
дней рождения студентов.
С помощью запроса на добавление записи одной таблицы
(все отобранные запросом) можно поместить в конец другой таблицы. Для создания
запроса на добавление выполните следующее:
1)
для отбора
добавляемых записей сначала составьте запрос на выборку;
2)
выполните
составленный запрос и оцените результат, переключились в режим таблицы с
помощью команды Режим таблицы из меню Вид;
3)
после этого
вернитесь в режим конструктора и активизируйте команду Добавление из меню Запрос;
4)
в открывшемся при
этом диалоговом окне Добавление задайте в поле Имя таблицы имя таблицы, к
которой вы будете присоединять данные из выбранного набора записей;
5)
после нажатия
кнопки OK Access добавляет в бланк запроса строку Добавление. В эту строку
автоматически или в ручную вставляются имена тех полей целевой таблицы,
которые совпадают с именами полей запроса;
6)
выполните запрос,
нажав кнопку Запуск на панели инструментов;
7)
в специальном
диалоговом окне Access укажет, сколько записей будет добавлено к целевой
таблице, и потребует подтвердить выполнение этой операции.
Задание 15
Измените запрос Дата
рождения так, чтобы выбирались дни рождения в марте месяце. С помощью запроса
на добавления добавьте данные, полученные измененным запросом Дата рождения в
таблицу Выборка дней рождения студентов.
Запросы этого типа служат для удаления из таблицы
групп записей, соответствующих некоторому критерию отбора. Поскольку записи,
удаление посредством запроса, нельзя восстановить, следует тщательно
анализировать критерии отбора.
Для создания запроса на удаление выполните следующее:
1)
для отбора
удаляемых записей сначала составьте запрос на выборку.
2)
затем выполните
составленный запрос и оцените результат, переключившись в режим таблицы с помощью
команды Режим таблицы из меню Вид;
3)
после этого
вернитесь в режим конструктора и активизируйте команду Удаление из меню Запрос;
4)
Access добавит в
бланк запроса строку Удаление и введет в ее ячейки значение Условие. Это означает, что пользователь
может установить дополнительные критерии отбора;
5)
выполните запрос,
нажав кнопку Запуск на панели
инструментов;
6)
в специальном
диалоговом окне Access укажет, сколько записей будет удалено из таблицы, и
потребует подтвердить выполнение этой операции.
Задание 16.
Удалите из
таблицы Выборка дней рождения учеников данные об учениках, родившихся с I по
12 число.