Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы Данных

.pdf
Скачиваний:
162
Добавлен:
04.06.2015
Размер:
5.09 Mб
Скачать

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

Для вызова Конструктора запросов следует осуществить следующие шаги.

1.Открыть базу данных.

2.Найти вкладку Создание и в ней группу команд Другие.

3.Щелкнуть команду Конструктор запросов. Откроется бланк конструктора и диалоговое окно Добавление таблицы.

4.Указать в окне Добавление таблицы имена таблиц, из которых необходимо извлечь данные. Заметим, что в данном окне доступны как базовые таблицы, так и запросы. Это позволяет решить проблему вложенных запросов.

5.Закрыть окно Добавление таблицы. На ленте инструментов откроется вкладка Конструктор с четырьмя группами команд (табл. 2.1). Используя эти команды, приступить к заполнению бланка конструктора. Сформированный запрос сохранить.

Для сохранения запроса требуется выполнить действия.

1.Щелкнуть кнопку Microsoft Office.

2.Выбрать команду Сохранить.

3.Ввести имя запроса, если запрос сохраняется впервые. Щелкнуть кнопку Ok.

Те же действия можно осуществить при помощи команды Сохра-

нить контекстного меню или Панели быстрого доступа.

 

Таблица 2.1

 

 

Группа команд

Назначение команд

 

 

Результаты

Смена режима работы с запросом. Содержит команду

 

Выполнить запрос

 

 

Тип запроса

Выбор типа создаваемого запроса

 

 

Настройка запроса

Вызов окна Добавление таблицы или окна Построи-

 

тель выражений, вставка и удаление строк и столбцов

 

бланка конструктора

 

 

Показать или скрыть

Отображение или скрытие Окна свойств запроса и

 

специальных строк бланка конструктора

 

 

70

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

РЕЖИМЫ РАБОТЫ С ЗАПРОСОМ

Всякий созданный запрос, когда он сохранен под некоторым именем, появляется в области переходов в группе Запросы. Дальше с запросом можно работать. Эта работа может сводиться к выполнению таких действий:

выполнение запроса и отображение результатов в виде таблицы. Для этого предназначен Режим таблицы. В данном режиме с результирующей таблицей запроса можно работать точно так же как и с базовой таблицей (устанавливать сортировку и фильтрацию, редактировать данные). Режим таблицы активизируется двойным щелчком левой кнопкой мыши по требуемому запросу в области перехода. Если запрос открыт в другом режиме, то перейти в Режим таблицы можно при помощи команд контекстного меню или команды Режим ленты инструментов;

вывод результатов запроса в виде таблицы с древовидной структурой. Такое действие реализует режим Сводная таблица. Перейти в этот режим (из других режимов) можно через контекстное меню;

отображение результатов запроса в виде диаграммы. Это исполня-

ет режим Сводная диаграмма. Перейти в режим Сводная диа-

грамма (из других режимов) можно через контекстное меню;

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

Все режимы взаимозаменяемы, т.е. при выборе одного, появляется возможность перехода в другой режим.

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

71

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

СВОЙСТВА ЗАПРОСА

Запрос как всякий объект базы данных обладает свойствами, которые влияют на результаты его выполнения. Эти свойства выводятся в Окне свойств, которое отображается в режиме Конструктор запросов при нажатии команды Страница свойств. Поскольку запрос можно рассматривать как виртуальную таблицу, то свойства запроса во многом схожи со свойствами таблицы. Наиболее важные свойства запроса представлены в табл. 2.2.

 

Таблица 2.2

 

 

Свойство

Назначение

 

 

Фильтр

Позволяет назначить или изменить условия отбора

 

записей, выводимых на экран

 

 

Порядок сортировки

Разрешает назначить или изменить порядок отобра-

 

жения записей запроса

 

 

Фильтр при загрузке

Указывает, на необходимость фильтрации (Да) запи-

 

сей при каждом выполнении запроса. Имя фильтра

 

устанавливает свойство Фильтр

 

 

Сортировка при загрузке

Указывает, на необходимость сортировки (Да) запи-

 

сей при каждом выполнении запроса. Порядок сорти-

 

ровки устанавливает свойство Порядок сортировки

 

 

Уникальные записи

Позволяет указать, следует ли (Да/Нет) извлекать

 

только уникальные записи из источника записей за-

 

проса. Запись считается уникальной, если значение

 

хотя бы одного поля записи отличается от значения

 

того же поля в любой другой записи. Данное свойство

 

действует только в тех случаях, когда в качестве ис-

 

точника записей используется несколько таблиц

 

 

Уникальные значения

Позволяет указать, следует ли (Да/Нет) отображать в

 

результатах запроса только уникальные записи. Это

 

свойство применяется для исключения записей-

 

дубликатов в результате запроса

 

 

72

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

Ограничение. Свойства Уникальные записи и Уникальные значения

связаны таким образом, что только для одного из них может быть установлено значение Да. Например, если для свойства Уникальные значения задается значение Да, то Access автоматически устанавливает значение Нет для свойства Уникальные записи. Однако значение Нет можно задать для обоих этих свойств одновременно.

При создании запроса полям, которые включены в запрос, автоматически присваиваются свойства полей базовой таблицы (например, тип данных). Эти свойства не могут быть изменены в запросе. Модифицировать можно лишь свойства, представленные в табл. 2.3.

 

Таблица 2.3

 

 

Свойство

Назначение

 

 

Описание

Содержит описание поля

 

 

Формат

Определяет формат визуального отображения данных

 

в поле запроса. Не влияет на формат хранения дан-

 

ных в базовой таблице

 

 

Маска ввода

Задает шаблон для ввода данных

 

 

Подпись

Задает псевдоним поля текст, отображаемый в за-

 

головке столбца запроса. Если это свойство не зада-

 

но, то в качестве заголовка столбца используется имя

 

поля

 

 

БЛАНК КОНСТРУКТОРА ЗАПРОСОВ

Бланк (окно) конструктора разделяется на две области:

область схемы. Расположена в верхней части бланка. Отражает источник записей запроса – базовые таблицы и запросы, из которых осуществляется выбор полей, а также связи между таблицами. Каждая таблица представляется отдельным окном, с указанием всех доступных полей. Межтабличные связи отражаются в полном со-

73

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

ответствии со схемой данных, определенной при создании базы данных;

область сетки. Расположена в нижней части бланка. Содержит сетку, аналогичную электронной таблице, в которой задается описание запроса.

Вобласти схемы можно выполнять следующие действия: добавление

иудаление таблиц; изменение межтабличных связей (например, режима соединения таблиц); указание полей, которые должны войти в результат запроса (путем перетаскивания их мышью в область сетки).

Вобласти сетки можно задать следующие особенности запроса:

отображаемые поля;

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

выражения, для вычисляемых полей;

порядок сортировки записей в запросе;

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

условия группировки записей, включая статистические функции;

новые значения для запросов на обновление или добавление;

имена полей-получателей в запросах на добавление.

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

СОЗДАНИЕ ЗАПРОСА НА ВЫБОРКУ С ПОМОЩЬЮ КОНСТРУКТОРА

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

74

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

 

 

Таблица 2.4

 

 

 

Строка

Тип запроса

Описание

 

 

 

Поле

Все

Отображает имя поля и выражение для

 

 

вычисляемого поля

 

 

 

Имя

Выборка, добавление, об-

Имя таблицы для соответствующего по-

таблицы

новление, создание таб-

ля. Для вычисляемых полей остается пус-

 

лицы

той

 

 

 

Групповая

Выборка, добавление,

Указывает, что соответствующее поле

операция

создание таблицы

участвует при создании значений стати-

 

 

стических функций запроса. Строка по-

 

 

является после выбора команды Итоги

 

 

на вкладке Конструктор

 

 

 

Сортировка

Выборка, добавление

Указывает, что соответствующее поле

 

 

используется для сортировки результатов

 

 

запроса, а также тип сортировки (по воз-

 

 

растанию или убыванию)

 

 

 

Вывод на

Выборка, добавление,

Свидетельствует, выводится ли поле в

экран

создание таблицы

результат запроса

 

 

 

Условие

Все

Критерий извлечения записей, исходя из

отбора

 

значений соответствующего поля. Зада-

 

 

ется выражением

 

 

 

Или

Все

Дополнительный критерий отбора, кото-

 

 

рый объединяется с критерием, заданным

 

 

в строке Условие отбора, логическим

 

 

оператором Or.

 

 

Для отображения других дополнитель-

 

 

ных строк Или следует поместить курсор

 

 

в следующую пустую строку бланка кон-

 

 

структора

 

 

 

Значение

Обновление, добавление

Определяет значение, помещаемое в по-

 

 

ле. Задается выражением

 

 

 

75

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

1.Вызвать Конструктор запросов.

2.Выбрать в окне Добавление таблицы запросы и базовые таблицы, из которых необходимо извлечь данные.

3.Закрыть окно Добавление таблицы. На ленте инструментов откроются вкладка Конструктор и бланк конструктора.

4.Установить в области схемы для каждой межтабличной связи параметры объединения (режим соединения) таблиц. Напомним, по умолчанию записи таблиц соединяются при равных значениях полей связи.

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

впустом столбце сетки в строке Поле раскрыть список доступных полей и выбрать требуемое поле.

6.В строке Сортировка указать порядок сортировки. Допускается сортировка по нескольким полям. Если сортировка выполняется по двум и более полям, то порядок перечисление полей в сетке (слева направо) задает, какие из них будут использоваться в качестве внутренних и какие в качестве внешних.

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

8.В строке Условие отбора задать фильтр, по которому следует отобрать записи в результат запроса.

9.Запрос сохранить.

Примечания:

Конструктор запросов по умолчанию всегда создает запрос на выборку. Всякий запрос на изменения предполагает первоначально создание запроса на выборку с последующим преобразованием его в запрос требуемого типа;

для сортировки результатов запроса по нескольким полям проще всего применять Режим таблицы.

76

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

ЗАДАНИЕ УСЛОВИЙ ОТБОРА

Условие отбора аналогично формуле, которая может содержать константы, логические операторы, операторы сравнения и ссылки на поля. В Access такие формулы называют выражениями. Условия вводятся в ячейку строки Условия отбора соответствующего поля непосредственно или с помо-

щью окна Построитель выражений.

Рекомендация. Если условие является временным или часто меняется, то лучше его заменить фильтром. Ведь фильтр – временное условие, которое можно изменять, устанавливать и отменять без изменения запроса. Если в условии отбора поля постоянны, но при этом часто изменяются сравниваемые значения, то целесообразно создать запрос с параметром.

Если в одной строке Условие отбора заданы условия для нескольких полей, то они соединяются логическим оператором And. Два выражения, описывающие условия отбора для одного поля и записанные в строке Условие отбора и строке Или, соединяются логическим оператором Or.

Сложное условие отбора (с использованием различных полей запроса) можно сформировать в любой ячейке строки Условие отбора. Примечательно, что это условие может содержать даже те поля таблиц из области схемы, которые не включены в запрос. Однако для контроля правильности выполнения запроса их лучше всего вначале включить в запрос, а затем, когда отпадет их необходимость, отключить их отображение, используя строку Вывод на экран.

Запись условия во многом зависит от типа поля, к которому оно относится. Например, текстовые литералы заключаются в прямые кавычки «, а даты – в символы «#». Однако это делать необязательно, Access автоматически ставит кавычки для текстов и символы # для дат, если они не указаны. Правила составления выражений описаны в прил.1. Там же даны краткие сведения об идентификаторах, функциях, операторах и константах Access. Примеры задания простых условий для полей с типами данных Текстовый, Поле MEMO приведены в табл. 2.5. Примеры описания условий для полей типа Числовой, Денежный, Счетчик представлены в табл. 2.6. Условия для полей типа Дата/время показаны в табл. 2.7.

77

 

 

 

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

 

 

 

 

 

 

 

 

Таблица 2.5

 

 

 

 

 

 

Формулировка

Пример записи

Результат отбора

 

 

условия

 

 

 

 

 

 

 

 

 

Равно заданному

"Красноярск»"

Записи, в которых текстовое поле

 

 

значению

или

Город равно значению «Красно-

 

 

 

="Красноярск"

ярск»

 

 

 

 

 

 

 

Не равно заданному

Not "Красноярск»"

Записи, в которых поле Город не

 

 

значению

или

равно значению «Красноярск»

 

 

 

<>"Красноярск"

 

 

 

 

 

 

 

 

Диапазон значений

>="Красноярск»"

Записи, у которых в поле Город

 

 

согласно

 

находится значение «Красноярск»

 

 

сортировке

 

и все следующие за ним значения

 

 

 

 

согласно лексикографическому по-

 

 

 

 

рядку

 

 

 

 

 

 

 

Начинается с

Like "М*"

Записи, в которых поле Город на-

 

 

заданной подстроки

 

чинается с буквы «М». Символ «*»

 

 

символов

 

является подстановочным знаком и

 

 

 

 

заменяет один или несколько сим-

 

 

 

 

волов

 

 

 

 

 

 

 

Не начинается с

Not Like "М*"

Записи, в которых поле Город не

 

 

заданной подстроки

 

начинается с буквы «М»

 

 

символов

 

 

 

 

 

 

 

 

 

Содержит задан-

Like "*ово*"

Записи, в которых поле Город со-

 

 

ную подстроку

 

держит подстроку символов «ово»,

 

 

символов

 

например, «Новосибирск»

 

 

 

 

 

 

 

Заканчивается

Like "*ск"

Записи, в которых поле Город за-

 

 

заданной подстро-

 

канчивается на «ск»

 

 

кой символов

 

 

 

 

 

 

 

 

 

Содержит задан-

Mid ([Город]; 3; 2) ="ан"

Записи, для которых в названии

 

 

ную подстроку в

 

города, начиная с третьего симво-

 

 

указанном месте

 

ла, располагается подстрока «ан».

 

 

 

 

Функция Mid возвращает подстро-

 

 

 

 

ку заданной длины с указанного

 

 

 

 

места исходной строки

 

 

 

 

 

 

78

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

 

 

Продолжение табл. 2.5

 

 

 

Формулировка

Пример записи

Результат отбора

условия

 

 

 

 

 

Диапазон значений

Like "[А-М]*"

Записи, в которых поле Город со-

 

 

держит значения, начинающиеся с

 

 

одной из букв от «А» до «М»

 

 

 

Содержит одно из

"Омск" Or "Томск"

Записи, в которых поле Город равно

двух заданных

 

«Омск» или «Томск»

значений

 

 

 

 

 

Совпадает с одним

In ("Омск";"Томск";

Записи, в которых поле Город со-

из значений,

"Москва")

держит одно из значений, упомяну-

указанных в списке

 

тых в списке

 

 

 

Соответствует

Len ([Город])>10

Записи, в которых длина названия

заданной длине

 

города превышает 10 символов.

 

 

Функция Len определяет длину

 

 

строки символов

 

 

 

Соответствует

Like "Ту??"

Записи, в которых название города

заданному шаблону

 

состоит из четырех символов, при-

 

 

чем первые два «Ту». Символ «?»

 

 

является подстановочным знаком и

 

 

заменяет один символ. Постановоч-

 

 

ный знак «#» заменяет одну цифру

 

 

 

Значение отсутст-

Is Null

Записи, в которых значение поля

вует

 

отсутствует

 

 

 

Содержит пустое

""

Записи, в которых поле содержит

значение

 

пустое слово

 

 

 

Если поле имеет тип данных Логический, то указание для него в строке Условие отбора значения Да (или Нет), приведет к тому, что в результат будут включены все записи, у которых установлен (снят) соответствующий флажок. Для типа данных Поле подстановок задание условий отбора зависит от типа подстановки. Если столбец подстановок представляет собой фиксированный набор значений, то в этом случае Поле под-

79