Поиск записей в БД с помощью запросов.
Цель: научиться осуществлять поиск записей в табличной БД с использованием запросов, совершенствовать умение составлять условия выбора на основе логических функций, применение полученных навыков в составлении запросов для практических целей.
Теоретический материал.
Запросы осуществляют поиск записей в табличной БД так же, как и фильтры. Отличие между ними состоит в том, что запрос является самостоятельным объектом базы данных, а фильтр привязан к конкретной таблице.
Запрос является производным объектом от таблицы. Однако результатом выполнения запроса является также таблица, т. е. запросы могут использоваться вместо таблиц. Например, форма может быть создана как для таблицы, так и для запроса.
Запросы позволяют отобрать те записи, которые удовлетворяют заданным условиям. Запросы бывают простые и сложные. Простой запрос содержит одно условие, а сложный запрос содержит несколько условий для различных полей.
В процессе создания запроса можно отбирать не только записи, но и поля, которые будут присутствовать в запросе.
Для закрепления умений составления условий для запросов и поиска информации по условию выполните Задание 4.
Для создания запроса можно воспользоваться Мастером запросов. Для этого в окне MS Access выбрать вкладку Создать и нажать пиктограмму Мастер запросов.

В появившемся окне Новый запрос выбрать пункт Простой запрос.

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

Выберите вид отчета по создаваемому запросу и нажмите Далее:

Задайте имя запроса и нажмите кнопку Готово для просмотра полученных данных.

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

Сначала нужно добавить таблицу, по которой будет создаваться запрос. При работе с многотабличными базами данных запрос может содержать данные из нескольких таблиц. Запрос можно также создавать и по другим запросам, созданным ранее.
После добавления таблицы окно Добавление таблицы нужно закрыть.
Далее выбираем необходимые поля, для каждого поля можно задать вид сортировки и условие отбора в соответствии с поставленной задачей и нажать пиктограмму Выполнить. Результат выполнения запроса будет представлен в виде таблицы. При закрытии окна запроса будет предложено его сохранить, при этом возможно переименование запроса.
Пример: Показать фамилии (отсортированные по алфавиту) и номера школ абитуриентов, которые окончили подготовительные курсы и получили «5» на экзамене по математике.


Обычно запрос, составленный с помощью конструктора, включает одну или несколько операций конъюнкции (операция И), возможны операции дизъюнкции (операция ИЛИ) для данных одного поля, и сортировку данных по одному или нескольким полям.
Сортировка записей может производиться либо по возрастанию, либо по убыванию значений полей. В процессе сортировки целостность базы данных сохраняется, т. е. они переносятся из одного места таблицы в другое целиком.
Для создания сложных запросов, включающих логические операции над данными нескольких полей или арифметические операции (например, сумму данных нескольких полей или среднее арифметическое), целесообразно использовать режим SQL.
Сначала создаем простой запрос в режиме конструктора с выборкой необходимых полей для вывода данных, сохраняем его и открываем в режиме SQL (Режим – SQL). В открывшемся окне запрос будет представлен на языке SQL в форме:
SELECT список полей таблицы через запятую
FROM имя таблицы
WHERE (логическое выражение);
В данной форме можно составить логическое выражение в соответствии с поставленной задачей, включая в него необходимые операции. Затем сохранить изменения и выполнить запрос.
Для закрепления навыков составления запросов выполните Практическую работу 4.
Тест для самопроверки:
http://files. school-collection. *****/dlrstore/5a4499c5-498c-43fb-be554595b/9_99.swf


