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

Базы Данных

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

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

Примечание. Важно помнить, что перекрестные запросы создаются для просмотра, а не для изменения данных.

СОЗДАНИЕ ЗАПРОСА НА ВЫБОРКУ ПОВТОРЯЮЩИХСЯ ЗНАЧЕНИЙ

Запросы на выборку повторяющихся значений предназначены:

для выявления записей-дубликатов в результатах другого запроса или в базовой таблице. Записи-дубликаты – это такие записи, которые имеют совпадающие значения во всех полях (с учетом значений Null);

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

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

1.Вызвать Мастер запросов.

2.В диалоговом окне Новый запрос щелкнуть строку Повторяю-

щиеся записи.

3.Выбрать запрос, в котором требуется найти записи с повторяющимися значениями.

4.В списке имеющихся полей выбрать те, которые содержать повторяющиеся значения.

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

6.Дать имя запросу и щелкнуть кнопку Готово. Запрос откроется в

Режиме таблицы.

90

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

Возникает вопрос, как устранить записи-дубликаты в результатах запроса, если они выявлены и не нужны? Существует несколько способов удаления записей-дубликатов. Самый простой из них: установить значение

Да свойства Уникальные значения в Окне свойств запроса. В этом слу-

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

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

СОЗДАНИЕ ЗАПРОСА НА ВЫБОРКУ ЗАПИСЕЙ БЕЗ ПОДЧИНЕННЫХ

Запрос на выборку записей без подчиненных служит для отбора строк таблицы, которые не связаны с другой таблицей. Такой запрос призван выполнять операцию, схожую с теоретико-множественной разностью двух таблиц. В качестве таблиц могут выступать как базовые таблицы, так и запросы. Пусть первая таблица используется для хранения информации об объектах предметной области (например, товарах), а вторая таблица – для хранения сведений о действиях (например, о продажах) в отношении этих объектов. Требуется получить список объектов из первой таблицы, по которым не содержится соответствующих действий во второй таблице (например, найти товары, которые не продавались). Этот список как раз и есть результат выполнения запроса на выборку записей без подчиненных.

Такой запрос проще всего создать с помощью Мастера запросов. Для этого надлежит выполнить следующие шаги.

1.Вызвать Мастер запросов.

2.В диалоговом окне Новый запрос щелкнуть строку Записи без подчиненных.

3.Выбрать первую и вторую таблицы. Эти таблицы должны быть связаны через общие поля (поля связи).

91

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

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

5.Выбрать поля, которые будут отображаться в запросе.

6.Дать запросу имя и щелкнуть кнопку Готово. Запрос откроется в

Режиме таблицы.

СОЗДАНИЕ УПРАВЛЯЮЩЕГО ЗАПРОСА

Управляющие запросы предназначены для создания и изменения таблиц. Существуют четыре типа управляющих запросов: запрос на создание таблицы, запрос на обновление, запрос на добавление и запрос на удаление.

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

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

2.Открыть запрос в Режиме таблицы и просмотреть результаты.

3.Перейти в Конструктор запросов. На вкладке Конструктор в

группе Тип запроса выбрать команду Создание таблицы. Откроется диа-

логовое окно Создание таблицы.

4.В поле Имя таблицы ввести имя новой таблицы.

5.Выполнить одно из двух действий: поместить новую таблицу в текущую базу данных, поместить новую таблицу в другую базу данных. В первом случае следует выбрать параметр Текущая база данных и нажать кнопку Ok. Во втором случае выбрать параметр В другой базе данных, далее в поле Имя файла указать расположение и имя файла другой базы данных, и затем нажать кнопку Ok.

92

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

Имя запроса на создание таблицы появится в области переходов. Рядом со значком запроса будет располагаться символ «!» признак управляющего запроса.

Примечание. Все управляющие запросы изменяют базу данных, поэтому для их выполнения постоянно требуется разрешение системы безопасности (подключения части базы данных, которая отключена в целях безопасности).

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

Работа с базами данных в группе Показать или скрыть щелкнуть коман-

ду Панель сообщений. После этого запрос открыть. Среди объектов базы данных в области переходов появится новая базовая таблица.

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

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

запрос на обновление запрещается использовать для удаления записей целиком из таблицы. Можно только имеющиеся значения заменять на Null. Для удаления записей из таблицы предназначается запрос на удаление;

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

93

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

Построение запроса на обновление, как и всех других управляющих запросов, предполагает сначала создание запроса на выборку, который потом преобразуется в запрос на обновление.

1.Создать запрос на выборку.

2.Открыть запрос в Режиме таблицы и просмотреть результаты. Убедиться, что запрос возвращает требуемые записи.

3.Перейти в Конструктор запросов. На вкладке Конструктор в

группе Тип запроса выбрать команду Обновление. В сетке бланка конструктора появится строка Обновление.

4.Выбрать поле, значения которого надо обновить. Ввести в строку Обновление новое значение поля. В общем случае новое значение задается выражением. Тип этого выражения должен совпадать с типом поля.

Запрос на добавление позволяет добавить набор записей из одной или нескольких таблиц в одну или несколько результирующих таблиц. Обычно исходные таблицы (откуда берутся записи для добавления) и результирующие таблицы (куда добавляются записи) находятся в одной и той же базе данных. Процесс построения запроса на добавление сводится к выполнению следующих шагов.

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

2.Открыть запрос в Режиме таблицы и просмотреть результаты.

3.Перейти в Конструктор запросов. На вкладке Конструктор в

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

4.В окне Добавление выбрать Текущая база данных, а затем в поле

Имя таблицы ввести имя таблицы, в которую требуется добавить записи.

5.В сетке бланка конструктора появится строка Добавление. Эта строка предназначена для установления соответствия между полями запроса на выборку, сформированного на шаге 1, и полями таблицы, в которую требуется добавить записи. По возможности Access автоматически устанавливает это соответствие. Между тем, соответствие между полями можно уточнить, используя список доступных полей, который раскрывается при щелчке в строке Добавление надлежащего поля.

94

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

Запрос на удаление предназначен для удаления набора записей целиком из одной или нескольких таблиц. Если эти таблицы связаны, то обязательно для межтабличных связей следует установить параметры Целост-

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

Предостережение. Надо помнить, результаты выполнения запросов на обновление, добавление и удаление невозможно отменить. Поэтому следует действовать очень аккуратно.

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

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

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

3.Навести указатель на пункт Управление.

4.В группе Управление базой данных выбрать команду Резервная копия базы данных.

5.В открывшемся окне Сохранение в поле Имя файла будет предложено имя резервной копии. Следует дать согласие.

6.Для завершения операции нажать кнопку Сохранить.

ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР И ПЕЧАТЬ ЗАПРОСА

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

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

95

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

Чтобы завершить предварительный просмотр и напечатать результаты запроса, нужно на вкладке Предварительный просмотр вначале щелк-

нуть команду Печать, а затем команду Закрыть окно предварительного просмотра.

ДОКУМЕНТИРОВАНИЕ ЗАПРОСОВ

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

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

2.Перейти на вкладку Работа с базами данных.

3.В группе Анализ щелкнуть команду Архивариус. Откроется диалоговое окно Архивариус.

4.В этом окне выбрать вкладку Запросы.

5.Выбрать один или несколько объектов, которые имеются на вкладке Запросы. Для выбора всех объектов нажать кнопку Выделить все.

6.Щелкнуть кнопку Параметры. Откроется окно Печать описания запроса, в котором следует задать характеристики, которые должны отображаться в отчете.

7.Щелкнуть кнопку Ok. Отчет откроется в режиме Предваритель-

ный просмотр.

8.С помощью команд вкладки Предварительный просмотр настроить отчет для печати.

9.Щелкнуть команду Печать.

Примечание. Созданный отчет не сохраняется и не появляется среди объектов базы данных.

96

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

2.2. ОТРАБОТКА ПРАКТИЧЕСКИХ НАВЫКОВ: ВЫПОЛНЯЕМ ЗАДАНИЕ 2

1. Создать простой запрос с помощью Мастера запросов. В вариантах задания это запрос 1. Далее для запроса 1 выполнить действия:

в Конструкторе запросов добавить условие отбора записей. Для записи условий отбора использовать Построитель выражений;

упорядочить данные запроса по полю, указанному варианте задания;

создать в Режиме таблицы строку итогов, если в запросе есть по-

ля с данными типа Числовой, Денежный;

выполнить редактирование результатов запроса 1. Проверить, как при этом изменяются значения полей в базовой таблице – источнике записей запроса.

2. Построить запрос с параметром. В вариантах задания это запрос 2. Для запроса 2 осуществить действия:

упорядочить данные по полю, указанному в варианте задания;

создать в Режиме таблицы строку итогов, если в запросе есть по-

ля с данными типа Числовой, Денежный;

открыть Окно свойств и проанализировать свойство Порядок сортировки;

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

3. Скопировать запрос 2 под новым именем. В вариантах задания это запрос 3. Для запроса 3 исполнить действия:

открыть запрос в Конструкторе запросов и удалить поля, заданные в варианте задания. Удаление этих полей приведет к вероятному возникновению записей-дубликататов;

используя свойство запроса Уникальные значения, устранить за- писи-дубликаты;

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

97

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

4.Вызвать Мастер запросов и сформировать перекрестный запрос.

Ввариантах задания это запрос 4. Открыть запрос 4 в Конструкторе запросов и добавить условие отбора, указанное в варианте задания.

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

в запросе 5 изменить в межтабличных связях режим соединения таблиц;

проверить, как изменение режима соединения влияет на результаты запроса 5;

используя запрос 6, построить запрос на создание архивной таблицы – таблицы для хранения устаревших данных. В вариантах задания это запрос 7;

выполнить запрос 7. Полученную таблицу напечатать.

6. Просмотреть и прочитать запросы 1, 2, 5 в режиме SQL. Воспользоваться краткими сведениями о SQL-запросах в Access, представленными в прил. 2.

7. Используя команду Архивариус, создать и прочитать отчет, охватывающий характеристики всех созданных запросов.

8. Ответить на контрольные вопросы.

98

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

2.3. ВАРИАНТЫ ЗАДАНИЯ 2

ВАРИАНТ 1. БАЗА ДАННЫХ «СТУДЕНЧЕСКАЯ НАУЧНАЯ РАБОТА»

Запросы

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

 

 

Запрос 1 Из таблицы Студенты выбрать студентов группы М36, обучающихся на бюджетной основе, фамилии которых начинаются на букву «А». В запрос включить поля: НомерЗачетнойКнижки, ФамилияСтудента, ИмяСтудента, ОтчествоСтудента, ДатаРожденияСтудента, Стипендия. Данные упорядочить по полям: ДатаРожденияСтудента, НомерЗачетнойКнижки

Запрос 2 В таблице Студенты найти всех студентов указанного курса с датами рождения из заданного диапазона. Номер курса второй символ значения поля Группа. В запрос включить поля: НомерЗачетнойКнижки, ФамилияСтудента, ИмяСтудента, ОтчествоСтудента, Группа, ДатаРожденияСтудента. Данные упорядочить по полям: Группа, НомерЗачетнойКниж-

ки. Параметры запроса: номер курса, диапазон дат

Запрос 3 Из запроса 2 удалить поля: НомерЗачетнойКнижки, ИмяСтудента, ОтчествоСтудента, Группа

Запрос 4 Перекрестный запрос по данным таблицы Студенты. В качестве столбцов взять значения поля ВидОбучения, в качестве строк – значения поля Группа. На пересечении строк и столбцов отобразить значения функции Count от поля НомерЗачетнойКнижки. Условие отбора: студенты третьего курса

Запрос 5 Используя таблицы Кафедры, НаучныеРуководители и Студенты, вычис-

лить количество студентов, специализирующихся на каждой кафедре. В запрос включить поля: НазваниеКафедры, ЧислоСтудентов. Вычисляемое поле: ЧислоСтудентов

Запрос 6 Для каждой студенческой группы определить вычисляемые поля: Суммар-

наяСтипендия, СреднийРазмерСтипендии. Учесть, что стипендию полу-

чают только студенты, обучающиеся на бюджетной основе

Запрос 7 В архивную таблицу поместить все данные, которые формируются запросом 6 и касаются студентов, поступивших в вуз в указанном году

99