
- •Технологии разработки программного обеспечения
- •Реляционное представление данных
- •Типы субд
- •Место и роль субд Microsoft Access®
- •Объекты
- •Особенности интерфейса
- •Режимы работы с бд
- •Порядок выполнения работы
- •Контрольные вопросы
- •Свойства полей. Обзор
- •Регистронезависимость Access
- •Свойства полей Тип данных и Размер поля
- •Приоритеты при разработке субд
- •Проектировочный режим: средства создания объектов
- •Эксплуатационный режим таблиц
- •Порядок выполнения работы
- •Варианты заданий
- •Контрольные вопросы
- •Реализация разделения данных. Ключевые поля
- •Вид связи один-к-одному
- •Вид связи один-ко-многим
- •Вид связи многие-ко-многим
- •Механизм создания ключей
- •Механизм подтаблиц
- •Порядок выполнения работы
- •Варианты заданий
- •Контрольные вопросы
- •Фильтры по выделенному
- •Запросы
- •Классификация запросов
- •Запросы на выборку
- •Отличия фильтров от запросов на выборку
- •Понятие предиката
- •Константы и переменные в запросах
- •Операторы в запросах
- •Бланк запроса в Access
- •Запросы с параметрами
- •Порядок выполнения работы
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Контрольные вопросы
- •Групповые операции
- •Запрос на обновление
- •Встроенные функции
- •Язык sql
- •Порядок выполнения работы
- •Вариант 10
- •Контрольные вопросы
- •Компилируемые и интерпретируемые языки программирования
- •Написание программы на языке Perl
- •Синтаксис языка Perl
- •Функции Perl
- •Порядок выполнения работы
- •Регулярные выражения
- •Операция поиска в строке
- •Оператор замены в строке
- •Обратные ссылки
- •Предопределённые переменные
- •Замена в текстовом файле
- •Функции работы со строками
- •Порядок выполнения работы
- •Подчинённая таблица «Корреспонденция»
- •Вариант 2 Главная таблица «Партнёры»
- •Подчинённая таблица «Сделки»
- •Вариант 3 Главная таблица «Сотрудники»
- •Подчинённая таблица «Поручения»
- •Вариант 4 Главная таблица «Товары»
- •Подчинённая таблица «Сертификаты»
- •Вариант 5 Главная таблица «Заказы»
- •Подчинённая таблица «Заказчики»
- •Вариант 6 Главная таблица «Поставки»
- •Подчинённая таблица «Посредники»
- •Вариант 7 Главная таблица «Терминалы»
- •Подчинённая таблица «Покупки»
- •Вариант 8 Главная таблица «Плательщики»
- •Подчинённая таблица «Счета»
- •Вариант 9 Главная таблица «Проекты»
- •Подчинённая таблица «Исполнители»
- •Вариант 10 Главная таблица «Мероприятия»
- •Подчинённая таблица «Персонал»
Запрос на обновление
Ещё одним видом запросов является запрос на обновление. Это вид запроса, который меняет только данные БД, но не саму её структуру, рисунок 13. Результатом таких запроса являются изменённые данные в таблицах, в том числе количество модифицированных записей. Сравните с запросами на выборку, где результатом была временная таблица с данными.
Требуется ли повысить зарплату всем сотрудникам отдела сбыта, не имеющим взысканий, или перейти на семизначную систему нумерации городских телефонов – это можно и нужно делать не вручную, путём длительного и утомительного труда многих пользователей, с последующими опечатками и т. п., а автоматически.
Для этого после создания запроса (по умолчанию создаётся запрос на выборку) необходимо активизировать команду Обновление. Вид БЗ при этом изменится: вместо строк Сортировка и Вывод на экран появляется строка Обновление, станет невозможным добавление групповых операций. Именно в строку Обновление следует писать те новые значения, которые примут данные в поле после модификации. Выражения эти могут содержать и старые значения поля. Например, чтобы повысить зарплату на 10%, нужно в обновлении написать [Зарплата]*1,1.
Перед выполнением запроса на обновление Access предупредит, что отмена изменений невозможна. Также будет выдано количество записей, поля которых будут модифицированы. После всех подтверждений изменения будут зафиксированы.
Встроенные функции
В Access, как и в других современных СУБД, есть набор встроенных функций, выполняющих наиболее часто встречающиеся действия. В отличие от статистическими операций, встроенные функции можно использовать и без предварительной группировки.
Функция, как и любая переменная, имеет уникальное имя. Кроме того, отличительным признаком именно функции является список её аргументов в круглых скобках. Аргументы разделяются между собой точкой с запятой. Даже если входных параметров нет, то скобки обязательно должны присутствовать!
Результатом выполнение функции является возвращение одного значения на выходе.
Для выполнения работы потребуется следующие функции.
Функция проверки условия IIf(Условие; Значение1; Значение2). Если выполняется Условие, то функция возвращает Значение1. Иначе она возвращает Значение2.
Функция Date() возвращает текущую дату.
Функции Right(Строка; N) и Left(Строка; N) возвращают первые N символов в строке справа или слева соответственно. Например, Left("абвг"; 2) даст строку "аб", Right("абвг"; 3) – строку "бвг".
Функции Year(Дата), Month(Дата) и Day(Дата) возвращают год, месяц и число от Даты соответственно. Например, Year(#12.10.2008#) = 2008, Month(#12.10.2008#) = 10 и т. д.
Функция DateSerial(Год; Месяц; День) по трём числам года, месяца и дня возвращает соответствующее значение даты. Например, DateSerial(1998; 2; 28) = #28.02.1998#. Эта функция, как и функции из предыдущего пункта, является функцией преобразования типа данных.
Функция CDate(Строка) преобразует строковый параметр с датой/временем в собственно дату/время. Например, CDate("12.07.2008") = #12.07.2008#. Функцию рекомендуется использовать при задействованных параметрах типа Дата/Время, так как по умолчанию параметры распознаются, как правило, в виде чисел или строк.
В качестве другого, более сложного примера вычисляемого поля уже с применением функций рассмотрим вычисление возраста по дате рождения человека на настоящий момент. Известно, что возраст увеличивается на единицу в день рождения. Ниже представлена формула.
Year(Date()) - Year([ДР]) - IIf(Date() >= DateSerial(Year(Date()); Month([ДР]); Day([ДР])); 0; 1)
Анализ и доказательство правильности этого выражения провести самостоятельно для закрепления материала.