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

Ивличев П.С. Практикум по информационным технологиям. Ч. 5. Проектирование баз данных

.pdf
Скачиваний:
26
Добавлен:
07.01.2021
Размер:
1.4 Mб
Скачать

31

8.Запустите созданный запрос на исполнение.

9.Подтвердите удаление записей.

10.Откройте таблицу Приказы о взысканиях. Убедитесь в отсутствии записи о приказе 14-лс/2-о.

11.Откройте таблицу Журнал учета взысканий. Обратите внимание на то, что из этой, подчиненной, таблицы были удалены данные о взысканиях, наложенных приказом 14-лс/2-о.

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

записей. Обновлению подлежат все записи, удовлетворяющие условию отбора. Если условие отбора не задано, то происходит обновление всех записей в таблице.

Запрос – Смена фамилии Новокосовой.

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

1. Выполните команду Конструктор запросов на вкладе Созда-

ние.

2.В списке таблиц выберите таблицу Список сотрудников.

3.На вкладке Конструктор в группе Тип запроса нажмите кнопку

Обновление .

4.Добавьте в запрос поле Фамилия.

5.В качестве условия отбора укажите «старую» фамилию сотруд-

ницы: Новокосова.

6.В строке Обновление введите «новую» фамилию: Неверова (Рисунок 18).

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

вой.

8.Запустите запрос на исполнение.

9.Проверьте правильность выполнения запроса по таблице Список

сотрудников.

Рисунок 18 – Запрос на обновление

32

Самостоятельно создайте следующий запрос.

1. Запрос – Смена мотива поощрения (За хорошую служ-

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

Задание 16. Добавление в запрос вычисляемых полей

Спомощью запросов можно не только извлекать данные из таблиц, но

имодифицировать их, выполняя с ними различные действия. Список доступных операций определяется типом хранящихся в таблице данных и набором встроенных функций в Access.

Запрос – Список сотрудников (объединенные ФИО).

При создании таблицы Список сотрудников (Таблица 1), мы разбили графу ФИО сотрудника на три поля: Фамилия, Имя и Отчество. С точки зрения проектирования базы данных наше решение было вполне оправданно, но исходная задача предполагает запись ФИО в одну графу. Создадим запрос, который будет объединять данные из трех полей в одно новое поле. Хранение значений этого поля в таблице не предусмотрено.

1. Выполните команду Конструктор запросов на вкладе Созда-

ние.

2.В списке таблиц выберите таблицу Список сотрудников.

3.Добавьте в запрос поля Личный номер, Подразделение, Должность и Специальное звание.

4.Поместите курсор в строку Поле рядом с последним добавленным полем и на вкладке Конструктор нажмите кнопку Построитель

.

Окно построителя выражений (Рисунок 19) состоит из нескольких ча-

стей.

Рисунок 19 – Построитель выражений

33

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

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

5. Раскройте список Книга учета поощрений в группе Элементы выражений, раскройте список Таблицы и выберите таблицу Список со-

трудников (Рисунок 20).

Рисунок 20 – Выбор таблицы для выражения

6.В списке Категории выражений дважды щелкните поле Фамилия, чтобы добавить его в выражение.

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

8.Введите с клавиатуры строку « ». Это позволит добавить к фамилии сотрудника один пробел.

9.Введите с клавиатуры знак +.

10.В списке Категории выражений дважды щелкните поле Имя.

11.Введите с клавиатуры символы + « » +.

12.В списке Категории выражений дважды щелкните поле Отчество. Выражение примет следующий вид (Рисунок 21).

Рисунок 21 – Выражение для построения ФИО

13.Нажмите ОК, чтобы закрыть окно построителя выражений.

14.Сохраните запрос под именем Список сотрудников (объ-

единенные ФИО).

15.Запустите запрос на исполнение (Рисунок 22).

Недостатком указанного запроса является наименование созданного поля: Выражение1, которое не отражает сути содержащейся в нем информации.

Для улучшения представления данных, наименование поля можно изменить.

34

16.Откройте запрос Список сотрудников (объединенные ФИО) в конструкторе.

17.Поместите курсор в поле Выражение1 и нажмите на вкладке

Конструктор кнопку Страница свойств .

18.В окне свойств, на вкладке Общие в поле Подпись введите новое наименование поля: ФИО сотрудника.

19.Сохраните запрос, запустите его на выполнение. Обратите внимание на изменение заголовка поля.

Рисунок 22 – Фрагмент запроса на выполнении

Задание 17. Использование функций в запросах на обновление Построитель выражений позволяет не только формировать вычисляе-

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

Запрос – Смена специальных званий сотрудников отдела следствия и дознания.

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

Такую замену можно осуществить с помощью функции SQL Replace.

1. Выполните команду Конструктор запросов на вкладе Созда-

ние.

2.В списке таблиц выберите таблицу Список сотрудников.

3.На вкладке Конструктор выберите тип запроса Обновление.

4.Добавьте в запрос поля Подразделение (для отбора значений)

иСпециальное звание (для изменения значений).

5.В поле Подразделение, в строке Условие отбора введите Отдел следствия и дознания.

6.Поместите курсор в строку Обновление поля Специальное звание и нажмите кнопку Построитель на вкладке Конструктор.

35

7.В списке Элементы выражений раскройте список Функции и выберите Встроенные функции.

8.В списке Категории выражений выберите Текстовые.

9.В списке Значения выражений выберите Replace (Рисунок 23).

Рисунок 23 – Функция Replace

10.Дважды щелкните на названии функции, чтобы добавить ее в выражение. Будет вставлен шаблон с параметрами.

11.Выделите параметр «string» (строка, в которой осуществляется поиск образца).

12.В списке Элементы выражений откройте список Книга учета поощрений и взысканий, откройте перечень таблиц, выберите таблицу

Список сотрудников и двойным щелчком добавьте поле Специальное звание. Удалите появившийся шаблон «Выражение» в выражении.

13.Выделите параметр «find» (искомый фрагмент).

14.Замените его на текст «полиции».

15.Выделите параметр «replace» (фрагмент для замены).

16.Замените его на текст «юстиции».

17.Удалите из выражения параметры «start», «count», «compare» (Рисунок 24).

Рисунок 24 – Параметры функции Replace

18.Нажмите кнопку ОК и сохраните запрос под именем Смена специальных званий сотрудников отдела следствия и дознания.

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

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

20.Откройте таблицу Список сотрудников. Убедитесь, что специальные звания сотрудников отдела следствия и дознания изменились.

Самостоятельно создайте следующие запросы.

36

1.Запрос – Смена специальных званий сотрудников ОРЛС. Запрос должен изменить звания сотрудников отдела по работе с личным составом со званий полиции на звания внутренней службы.

2.Запрос – Смена специальных званий сотрудников ты-

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

Задание 18. Использование вычислений в запросах

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

вних вычисленные значения.

Запрос – Обновление данных о поощрениях

В датах приказа указаны 2011 и 2012 годы. Заменим эти годы на прошлый и позапрошлый от текущей даты.

Для этого, надо опередить, сколько лет надо прибавлять к данным из поля Дата приказа. К примеру, если текущим годом является 2016, значит прошлый год был 2015. Именно на него надо поменять 2012 год, таким образом, сдвиг по годам будет равен 2015-2012=3.

1.Определите величину сдвига по годам для текущей даты.

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

2. Выполните команду Конструктор запросов на вкладе Созда-

ние.

3.В списке таблиц выберите таблицу Приказы о поощрениях.

4.На вкладке Конструктор выберите тип запроса Обновление.

5.Добавьте в запрос поле Дата приказа.

6.Поместите курсор в строку Обновление поля Дата приказа и нажмите кнопку Построитель на вкладке Конструктор.

7.В списке Элементы выражений раскройте список Функции и выберите Встроенные функции.

8.В списке Категории выражений выберите Дата и время.

9.В списке Значения выражений выберите DateAdd.

10.Дважды щелкните на названии функции, чтобы добавить ее в выражение. Будет вставлен шаблон с параметрами.

11.Выделите параметр «interval» (код типа интервала, который до-

бавляется к дате).

12.Введите «yyyy» (код года).

13.Выделите параметр «number» (величина интервала).

14.Введите вычисленное значение сдвига.

15.Выделите параметр «Дата» (базовое значение даты).

16.В списке Элементы выражений откройте список Книга учета поощрений и взысканий, откройте перечень таблиц, выберите таблицу

Приказы о поощрениях и двойным щелчком добавьте поле Дата приказа. Удалите появившийся шаблон «Выражение» в выражении.

37

17. Проверьте получившееся выражение (Рисунок 25). Вместо числа 3 у вас должно быть записано вычисленное значение сдвига.

Рисунок 25 – Функция DateAdd

18.Нажмите кнопку ОК и сохраните запрос под именем Обновление данных о поощрениях.

19.Запустите запрос на выполнение. В случае правильного выполнения задания вы будете уведомлены об обновлении 45 записей. Не подтвер-

ждайте выполнение запроса, если количество обновляемых записей отличается от этого значения!

20.Откройте таблицу Приказы о поощрениях. Убедитесь, что даты изменились требуемым образом. Не запускайте этот запрос на вы-

полнение повторно!

Самостоятельно создайте следующие запросы.

1.Запрос – Обновление данных о взысканиях. Запрос дол-

жен заменить 2011 и 2012 годы в приказах о взысканиях позапрошлым и прошлым годом.

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

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

Список взысканий.

Поощрения ОУУП и ПДН.

Премии (начальник отдела).

Строгие выговоры и предупреждения об НСС.

Вид этих запросов показан в приложении №1.

Список сотрудников (объединенные ФИО). Этот за-

прос используется в последующих заданиях, убедитесь, что результат его выполнения совпадает с образцом!

Также должны присутствовать запросы на обновление (не запускайте их повторно!):

Смена мотива поощрения (За хорошую службу).

Смена специальных званий сотрудников ОРЛС.

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

Обновление данных о взысканиях.

38

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

39

Часть 3. Виды условия в запросах. Использование Мастера запросов

Задание 19. Использование в запросах подстановочных символов Иногда указать точное условие отбора или невозможно или проблема-

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

? – любой символ на позиции * – любое количество произвольных символов

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

Запрос – Поощрения участковых уполномоченных

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

1. Выполните команду Конструктор запросов на вкладке Созда-

ние.

2.Добавьте в запрос таблицы Список сотрудников, Журнал учета поощрений, Виды поощрений, Приказы о поощрениях.

3.Добавьте поля Фамилия, Имя, Отчество, Должность, Специальное звание, Вид поощрения, Дата приказа. Обратите внима-

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

4.В поле Должность добавьте условие отбора Like

«*участковый*».

5.Установите сортировку по возрастанию в поле Дата приказа.

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

7.Посмотрите результаты запроса, сравните их с образцом (Рисунок 26).

Рисунок 26 – Вид запроса после выполнения

40

Запрос – Поощрения в июне прошлого года правами начальника от-

дела

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

1. Выполните команду Конструктор запросов на вкладке Созда-

ние.

2.Добавьте в запрос таблицы Список сотрудников, Журнал учета поощрений, Виды поощрений, Приказы о поощрениях.

3.Добавьте поля Фамилия, Имя, Отчество, Должность, Специальное звание, Вид поощрения, Дата приказа, Кем приме-

нено из соответствующих таблиц.

4.Добавьте в поле Кем применено условие отбора так, чтобы выбрать только те поощрения, которые применил начальник отдела.

5.Сделайте поле Кем применено не выводимым на экран.

6.В поле Дата приказа добавьте условие, которому удовлетворяют все даты из диапазона 01.06.2012 – 31.06.2012 (2012 год приведен для образца!).

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

вать выражение Like “??.06.2012”. (2012 год приведен для

образца!)

7.Добавьте сортировку по полю Дата приказа.

8.Закройте запрос, сохранив его под именем Поощрения в июне прошлого года правами начальника отдела.

9.Откройте запрос. Убедитесь, что результат его выполнения соответствует образцу (Рисунок 27).

Рисунок 27 – Вид запроса после выполнения

Самостоятельно создайте следующие запросы.

1.Запрос – Поощрения руководящего состава. Должен со-

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

2.Запрос – Выговоры и строгие выговоры в позапро-

шлом году. Должен содержать информацию обо всех выговорах и строгих выговорах, наложенных в позапрошлом году. Необходимо указать фамилию, имя и отчество сотрудника, должность, специальное звание, вид взыскания, дату применения взыскания, номер приказа.

3.Запрос – Поощрения среднего начальствующего со-

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]