Базы данных / БД2012 / Часть 3
.docПоиск дает возможность найти все записи, удовлетворяющие заданному условию, но условия - примитивны (только совпадение).
Более мощным и универсальным средством работы с данными является ЗАПРОС.
Запросы
Запрос (query)- это формирование условий выборки информации из БД. Запрос может относиться к одной или многим связанным таблицам. Результатом запроса является результирующий набор записей (dynaset), который внешне выглядит как таблица. Эта виртуальная таблица может рассматриваться как таблица БД (добавление, удаление, обновление, включение в новые запросы). Dynaset - не хранится сам по себе и после закрытия прекращает свое существование. Хранятся только условия его создания (сам запрос). Но данные, которые в нем участвовали, хранятся в таблицах БД.
Типы запросов
-
Запрос на выборку. Извлекаем данные из одной или нескольких таблиц и результаты отражаем в объекте «Запрос» в режиме таблицы, в котором допускается извлечение записей. Кроме этого, используется для группировки записей, вычисления сумм значений, количества записей и прочих итоговых значений.
-
Запрос с параметрами. Это запрос, запуск которого вызывает появление диалогового окна для ввода некоторого условия отбора записей или значения для вставки в поле. Может открыться несколько диалоговых окон. Например, можно задать диапазон дат. Это удобно для создания форм и отчетов. При этом форма базируется не на таблице, а на запросе.
-
Перекрестный запрос. Это выборка данных, записанная в двумерной матрице. Обычно используется для представления статистических данных.
Для представления данных используется перекрестная таблица, в которой формируются заголовки столбцов и строк, причем заголовки- это значения, а не заголовки полей.
Например: требуется отобрать данные о количествах предприятий каждого типа по районам города.
-
Тип предпр.
Нижегородский
Советский
Приокский
….
Строитель.
5
7
3
Банки
10
3
2
Машиностр.
7
4
5
Приборостр.
2
1
7
-
SQL. Запрос, создаваемый прямо на языке SQL (Structured Query Language)- стандартный язык структурированных запросов аппаратно и программно независимый. Любой запрос превращается в SQL (и его можно увидеть).
-
Запрос на изменения. Это запрос, который за одну операцию (его выполнения) вносит изменения во многие записи. Существует 4 типа запроса на изменение: на создание таблицы, на удаление записей, на добавление и на обновление.
Создание простого запроса
Для создания запроса нужно определить следующее:
-
таблицы и поля в них, которые будут участвовать в запросе;
-
критерии отбора данных в dynaset;
-
какие поля показывать на экране.
Пример запроса из одной таблицы:
Создание простых отчетов
Отчет используется для представления данных в виде, характерном для печатных документов.
Они позволяют получить итоговую информацию, как результат сложной (часто статистической) обработки, группировки, сложной сортировки. Часто применяется графическое представление информации в виде диаграмм и разнообразных графиков (кривых, поверхностей и т.п.). отчеты могут предназначаться как для экрана, так и для принтера (в основном).
Существует несколько стандартных типов отчетов (подобно формам):
-
Ленточные - в виде строк и столбцов с группированиями и итогами;
-
В столбец - в виде формы с возможным включением итогов и графиков;
-
Отчеты для рассылки- шаблоны писем;
-
Почтовые наклейки- наклейки с адресной информацией для конвертов.
Структура ленточного отчета:
Номер заказчика |
Заказ |
Дата |
Сумма (итоги) |
Заказчик А |
Заказ А1 |
Дата А1 |
Сумма А1 |
Заказ А2 |
Дата А2 |
Сумма А2 |
|
Заказ А3 |
Дата А3 |
Сумма А3 |
|
|
Итог: сумма… |
||
Заказчик В |
Заказ В1 |
Дата В1 |
Сумма В1 |
Заказ В2 |
Дата В2 |
Сумма В2 |
|
|
Итог: сумма… |
Структура отчета в столбец:
Принципиальное различие между отчетом и формой заключается в их назначении. Форма используется для ввода данных (т.е. для интерактивного взаимодействия с системой). Отчет - только для отображения и просмотра данных и итоговых значений.
Этапы создания отчета- определение макета отчета, сбор данных, конструирование, печать (просмотр).
-
Определение макета - это определение структуры в виде эскиза.
-
Сбор данных. Чаще всего источником данных является запрос по нескольким таблицам. Полученный dynaset рассматривается как виртуальная таблица, данные из которой подставляются в поля отчета.
Рассмотрим создание простого ленточного отчета с помощью мастера.
Начинаем с кнопки «Создать» в окне БД в режиме «Отчеты». Выбираем «Мастер отчетов», а в качестве источника данных - подготовленный запрос. Запрос создаётся аналогично показанному выше простому однотабличному запросу, но по трём таблицам: Клиент, Животное, Визит. Допустим, мы хотим получить отчет по дневной выручке.
П росматривая данные, получим:
Возможен вариант выбора полей из нескольких таблиц вместо запроса.
После выбора источника идет выбор полей для отчета.
В ыбор уровней группировки:
После нажатия верхней кнопки можно нажать «Группировка» для более детального определения группируемых данных:
-для текстовых- обычный, по 1 букве, по 2-м буквам, …, 5;
-для числовых- обычный, 10, 50, 100,…;
-для Дата / время- обычный, год, квартал, месяц, неделя, день, час,… .
Обычный означает по всему полю.
Выбор порядка сортировки. Внутри группы обычно задается сортировка (автоматическая). Например, для фамилий- в алфавитном порядке.
Выбор итоговых значений- кнопка итоги расположена ниже сортировки. Она позволяет задавать различные варианты (опции) подведения итогов для числовых полей- суммирование, усреднение, максимальное и минимальное значения:
Выбор макета:
Это способ размещения данных на страницах.
Выбор стиля и просмотр:
Анализ таблиц
Почти всегда данные уже существуют в каком-то виде (просто текст, выдача данных из АСУ из старой ЭВМ, таблицы Excel, Quattro Pro и т.д.). Имеются возможности импортировать данные в виде одной большой плоской таблицы со всеми избыточностями и повторениями. Это единственный язык получения данных от инородных источников.
В Access есть средство приведения таблицы к нормализованному виду.
Анализатор таблиц выполняет следующие функции:
-
помогает разбить таблицу на несколько связанных таблиц (устраняя избыточность);
-
создать первичные и внешние ключи;
-
проверить орфографию.
Запуск. Сервис Анализатор Таблица.
Загружаются мастера Анализатора.
Первые два окна- объяснения, затем выбор таблицы для анализа и запуск собственно анализа. Анализ предлагается осуществить двумя способами. Первый- полуавтомат, когда анализатор берет все на себя и лишь задает уточняющие вопросы. Второй, вручную: перетаскиванием полей из одной таблицы в другую. После разбиения (нормализации) остается дать осмысленные имена вновь полученным таблицам и ключевым полям.
Анализатор в автоматическом режиме может сгенерировать лишнюю таблицу, или неудачно подобрать множество полей, не доопределить ключ и т.п. Все добавления и изменения можно сделать в окне- результате генерации. Здесь можно перетаскивать поля, определять ключи, создавать дополнительные таблицы (бросить поля при перетаскивании на свободном пространстве окна).