Создание запросов

Запрос можно создать с помощью Конструктора запросов или воспользоваться Мастером запросов.

Перед созданием запроса нужно открыть базу данных, в которой он будет храниться. После этого следует выбрать объект Запросы (Queries) и щелкнуть кнопку Создать (New). Начать создание запроса можно также, выполнив Вставка \ Запрос (Insert \ Query). В результате появляется окно (рис. 2), в котором предлагается выбор варианта создания запроса.

Рис. 2. Окно создания запроса

Возможны следующие варианты создания запроса:

Ø вручную с помощью конструктора - Конструктор (Design View);

Ø автоматическое создание простого запроса на выборку - Простой запрос (Simple Query Wizard);

Ø автоматическое создание перекрестного запроса для компактного представления данных в виде сводной (перекрестной) таблицы - Перекрестный запрос (Crosstab Query Wizard);

Ø автоматическое создание запроса на поиск записей с повторяющимися значениями полей - Повторяющиеся записи (Find Duplicates Query Wizard);

Ø автоматическое создание запроса на поиск записей в одной таблице, которые не имеют подчиненных записей в другой таблице - Записи без подчиненных (Find Unmatched Query Wizard).

Создаваемые запросы основаны на полях таблиц и/или запросов из базы данных. Все способы, кроме первого, реализуются с помощью Мастеров, упрощающих разработку запроса. Если созданный запрос не удовлетворяет требованиям, то можно воспользоваться Конструктором, либо создать заготовку запроса с помощью Мастера, которую затем подправить в режиме Конструктора.

Рассмотрим режим Конструктора как наиболее мощный и незаменимый при создании запросов, выходящих за рамки предлагаемых простейших вариантов.

Вызов Конструктора запросов производится при создании запроса или открытии существующего запроса и переводе его в режим Конструктора. В первом случае перейти в режим Конструктора запросов можно в окне открытой БД после выбора объекта Запросы (Queries) двумя способами: либо выполнив Создать \ ОК (рис. 2), либо щелкнув по кнопке Конструктор (Design). Для перевода запроса в режим Конструктора достаточно щелкнуть мышью по кнопке Конструктор на панели инструментов. Заметим, что при вызове Конструктора в главном меню Access появляется дополнительный пункт Запрос (Query), который имеет подпункты, позволяющие выполнять различные операции в процессе создания запроса: выполнение запроса, добавление таблицы в модель запроса, изменение вида запроса и т. д.

Составление запроса в режиме Конструктора (см. рис. 1) в общем случае включает в себя определение следующего:

Ø таблиц, над которыми выполняется запрос;

Ø вида запроса (выборка, добавление, удаление, перекрестный запрос, SQL-запрос);

Ø полей таблиц, по которым будет проводиться поиск;

Ø условий отбора записей;

Ø параметров отображения результатов выполнения запроса (показ полей, сортировка значений).

Все эти действия выполняются в запросной форме, которую можно отнести к форме запроса на языке QBE.

Для указания таблиц, используемых в запросе, нужно поместить в запросную форму схемы этих таблиц или запросов и указать связи между ними. Включение объектов в запрос производится в окне Добавление таблицы
(Show Table), которое вызывается автоматически (при создании запроса) или принудительно при работе с запросом путем выполнения команды
Запрос \ Добавить таблицу… .

При создании запроса Access по умолчанию предоставляет заготовку запроса па выборку. Изменить вид запроса можно с помощью пункта Запрос (Query) основного меню, где возможные виды запросов перечислены как подпункты меню.

Для создания запроса в виде инструкции языка SQL можно при наличии на экране запросной формы воспользоваться пунктом меню
Запрос \ Запрос SQL (Query \ SQL), в котором выбрать нужный вид SQL-запроса (на объединение, к серверу или управляющий). Если запрос уже описан в запросной форме (QBE-форме), выбор упомянутого выше пункта приведет к преобразованию запроса, если возможно, в предложение языка SQL. Заметим, что обратный переход не получается - при этом появляется пустая запросная форма.

Сохранить созданный запрос можно следующим образом:

Ø выполнив Файл \ Сохранить (File \ Save);

Ø выполнив Файл \ Сохранить как… (File \ Save As… )

Ø выполнив Файл \ Экспорт… (File \ Export… );

Ø щелкнув кнопку Сохранить (Save) на панели инструментов;

Ø ответив Да на вопрос о сохранении при закрытии окна создания запроса.

3. Порядок выполнения работы

3.1. Теоретико-множественные и специальные операции реляционной алгебры и их реализация в языках
QBE и SQL

Операция проекции.

Проекцией отношения R на набор атрибутов В, обозначаемой R[B], называется отношение со схемой, соответствующей набору атрибутов В
SR[B] = В, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора В.

R[B] = { r[В] }

По определению отношений все дублирующие кортежи удаляются из результирующего отношения.

Операция проекции, называемая иногда также операцией вертикального выбора, позволяет получить только требуемые характеристики моделируемого объекта. Чаще всего операция проекции используется как промежуточный шаг в операциях горизонтального выбора, или фильтрации. Кроме того, она используется самостоятельно на заключительном этапе получения ответа на запрос.

Для проекции записей реляционной таблицы в языке QBE осуществляется отбор полей из таблицы (строки Поле и Имя таблицы) и пометка отбираемых полей с помощью символа ü (помеченное поле выводится в выходную структуру новой реляционной таблицы) – строка Вывод на экран.

Задание 1.

Получить список имен и фамилий студентов.

На языке реляционной алгебры:

Запрос_1 = Студент [Имя_студ, Фам_студ]

На языке QBE. Создается следующий запрос на выборку:

Запрос_1

Поле Имя_студ   Фам_студ  
Имя таблицы Студент Студент
Вывод на экран ü ü

На языке SQL операция проекции реализуется следующим образом: