- •Министерство образования и науки Российской Федерации
- •В информационных технологиях и информационных системах
- •Часть II
- •1. Особенности проектирования многотабличных баз данных
- •2 Определение связей между таблицами
- •2.1 Объединения
- •2.2 Ограничения и поддержание целостности данных
- •2.2.1 Ограничения в базе данных
- •2.2.2 Поддержание целостности данных
- •2.3 Связывание таблиц
- •2.4 Создание форм для ввода данных
- •3 Многотабличные запросы
- •4 Создание форм на основе нескольких таблиц или многотабличных запросов
- •4.1 Создание подчиненных форм
- •4.2 Вычисление итоговых значений
- •4.3 Добавление в существующую подчиненную форму другой подчиненной формы
- •4.4 Связывание главной и подчиненной форм
- •4.5 Всплывающие формы и окна диалога
- •5 Макросы и модули
- •6 Создание интерфейса
- •Задания для самостоятельной работы
- •Литература
- •Часть II
- •610000, Киров, ул. Ленина, 104
3 Многотабличные запросы
При выборе данных из таблиц наиболее часто используются многотабличные запросы, поскольку информация в реляционных базах данных содержится в совокупности связанных таблиц.
Для формирования многотабличного запроса необходимо добавить в окне конструктора запросов все таблицы, участвующие в выборке, и определить условия их объединения.
Для формирования запроса, выводящего список неплательщиков, в конструкторе запросов сначала выбираются таблицы Абонент, Город и Разговор, а затем из этих таблиц в запрос добавляются нужные поля (рисунок 3.1). По сути, формирование запроса на основе нескольких таблиц отличается от формирования запроса на основе одной таблицы только тем, что те же поля выбираются из нескольких связанных таблиц, а не из одной. Для подсчета суммы также используется построитель выражений, в котором поля для расчеты выбираются из разных таблиц.
Р
езультат
выполнения запроса показан на рисунке
3.2.
З
апросы,
выполняющие вычисления в группах
записей, называются итоговыми запросами.
В итоговом запросе выполняется не только
суммирование, но и другие виды вычислений.
Для создания итогового запроса, находясь в конструкторе запросов, нужно выбрать Вид/Групповые операции и нажать кнопку Групповые операции на панели инструментов. В бланке запроса появится новая строка с наименованием Групповая операция.
В строке Групповая операция (Total) в режиме конструктора запроса используются статистические (агрегатные) функции: статистические функции по подмножеству. При вычислении статистических функций не учитываются записи, содержащие пустые (Null) значения. Например, функция Count возвращает количество всех непустых полей. Если имеются поля, которые содержат пустые значения, можно создать выражение, преобразующее пустые значения в нулевые. Это следует сделать, если требуется включить в статистические вычисления записи, содержащие пустые значения, или если нужно предотвратить возможность попадания в выражение пустого значения, когда поле, используемое в выражении, содержит пустые значения. Для преобразования пустых значений в нулевые можно использовать функцию Nz.
Таблица 3 содержит перечень допустимых видов итоговых операций, которые можно выбрать из раскрывающегося списка в строке Групповая операция.
Таблица 3 - Доступные статистические функции
Значение |
Выполняющаяся операция |
Sum |
Сложение |
Avg |
Среднее значение |
Min |
Минимальное значение |
Max |
Максимальное значение |
Count |
Количество записей, содержащих значения |
StDev |
Стандартное отклонение |
Var |
Дисперсия |
First |
Значение с первой записи |
Last |
Значение в последней записи |
И
спользование
групповых операций в запросах позволяет
получить разнообразные сведения,
например, запрос на рисунке 3.3 позволяет
увидеть, сколько раз абонент разговаривал
с данным городом (групповая функция
Count
в поле Город),
общее количество минут (групповая
функция Sum
в поле Количество
минут) и
общую сумму задолженности за разговоры.
При выполнении операции Count просматриваются все записи для указанного поля и вычисляется количество записей, которые содержат в этом поле какое-либо значение. Другими словами, данная операция пропускает пустые значения.
Ф
орма,
выполненная на основе запроса «Количество»,
представлена на рисунке 3.4
