- •Рязанский государственный радиотехнический университет
- •Учебно-методический комплекс по дисциплине сд.Р.06 «инфорационные сети, базы данных»
- •653700 «Приборостроение»
- •200106 – «Информационно-измерительная техника и технологии»
- •Работа № 1 работа с базами данных и таблицами.
- •2.1 Разработка таблицы "Персональные мероприятия"
- •2.2 Разбиение информации но полям.
- •2.3 Создание таблицы "Персональные мероприятия"
- •2.4 Определение значения по умолчанию для поля.
- •3.1. Отношения между таблицами.
- •4.1 Выбор ключа таблицы
- •4.2 Индексирование таблицы.
- •5.3 Изменение свойств полей и связей между таблицами.
- •5.4 Изменение связей между таблицами
- •Лабораторная работа №2. Добавление, изменение и проверка корректности данных в таблицах.
- •Цель работы
- •Домашнее задание.
- •Лабораторная работа № 3 Сортировка, поиск и фильтрация данных в таблицах
- •Сортировка таблицы по значению одного поля.
- •Сортировка таблицы по значению нескольких полей
- •Поиск записей по значению поля.
- •Отбор данных при помощи фильтров
- •Фильтр по выделенному фрагменту.
- •Обычный фильтр.
- •Расширенный фильтр и расширенная сортировка
- •Добавление сортировки по нескольким столбцам и составного критерия отбора
- •Сохранение и загрузка фильтра в качестве запроса
- •1. Создание простого запроса
- •2. Добавление полей в запрос.
- •3. Задание условия отбора и порядка сортировки результатов запроса
- •4. Создание более сложных запросов
- •5. Изменение полей таблицы при помощи запроса
- •6. Изменение заголовков полей в запросе
- •7. Сохранение запросов
- •Создание запросов других видов
- •8. Использование простых запросов на создание таблиц
- •9. Добавление параметра к запросу
- •10. Преобразование запросов по образцу в запросы на языке sql
- •Лабораторная работа № 5 запросы по нескольким таблицам и перекрёстные запросы
- •1. Соединение таблиц для создания многотабличного запроса
- •1.1 Создание внутреннего соединения по одному полю
- •1.2. Определение порядка сортировки результатов запроса
- •1.3. Создание запросов на выборку данных из таблиц с косвенными связями
- •1.4. Создание внутреннего соединения по нескольким полям
- •2. Использование полей подстановок
- •2.1 Добавление списка, задающего значение внешнего ключа, при помощи Мастера подстановок
- •2.2 Добавление списка постоянных значений к полю таблицы
- •Введите строку 03-94, чтобы вывести данные для марта 1995 года (рис. 10.51).
- •Нажмите кнопку ок для вывода результирующего множества запроса(рис.52).
Откроите в режиме конструктора запрос "Ежемесячная статистика по заказам".
Установите курсор в ячейку "Поле" столбца "Месяц", нажмите клавишу <F2> для выделения содержимого ячейки, а затем комбинацию клавиш <Ctrl> + <C>. чтобы поместить выделенное выражение в Буфер обмена.
Установите курсор в ячейку "Поле" столбца "ДатаРазмещения", нажмите клавишу <F2> для выделения содержимого ячейки, а затем комбинацию клавиш <Ctrl>+<V>, чтобы заменить его на выражение, содержащееся в Буфере обмена.
Установите курсор в ячейку "Условие отбора" столбца "ДатаРазмещения" и замените выражение <=#31.12.94#And>=#01.01.94# строкой [Введите месяц и год в формате ММ-ГГ:] (рис. 50).
Нажмите на панели инструментов кнопку "Запуск". В появляющемся диалоговом окне "Введите значение параметра" выводится надпись, которая задана на шаге 4 в качестве критерия отбора.
Введите строку 03-94, чтобы вывести данные для марта 1995 года (рис. 10.51).
Нажмите кнопку ок для вывода результирующего множества запроса(рис.52).
7.2 Определение типа данных параметра
Все параметры по умолчанию имеют текстовый тип. Если условие отбора относится к данным с типом "Дата/Время" (Data/Time) или "Числовой" (Number), то необходимо определить тип данных для каждого такого аргумента, используя диалоговое окно "Параметры запроса" (Query Parameters).
Для задания типа данных параметра:
С помощью мыши выделите строку Введите месяц и год в формате мм-гг: в ячейке "Условие отбора" столбца "ДатаРазмещения" (не включайте квадратные скобки) и скопируйте текст в Буфер обмена, нажав комбинацию клавиш <Ctrl>+<0.
Выберите команду "Запрос, Параметры" (Query, Parameters) для вывода диалогового окна "Параметры запроса".
Вставьте текст приглашения в столбец "Параметр" (Parameter), установив в него курсор и нажав комбинацию клавиш <Ctrl>+<V>. Строки в столбце "Параметр" и в ячейке "Условие отбора" должны совпадать в точности, что обеспечивается использованием Буфера обмена. Не указывайте в столбце "Параметр" квадратные скобки!
Нажмите клавишу <Таb> для перемещения к столбцу "Тип данных" (Data Type) и выберите из списка элемент "Текстовый" (Text) (рис. 53). Нажмите
кнопку ОК для закрытия диалогового окна.
Возможность преобразования в запрос с параметрами имеется у всех типов запросов, которые включают одно или несколько условий отбора. Преимущество использования аргументов заключается в том, что в запросе можно указать интервал интересующих значений, например указать определенный квартал или финансовый год.
8. Создание перекрестных запросов
Перекрестные запросы — это запросы, в которых вычисляются статистические данные и определяется их внешний вид. Информация выводится в привычной форме: в виде таблицы. В предложениях Assess SQL для обозначения перекрестного запроса используется ключевое слово transform . С помощью рассматриваемого типа запросов можно:
Указать поле, которое является заголовком строки, используя операцию "Группировка".
Задать поле или поля, которые являются заголовками столбцов, а
также условие, определяющее значения в столбцах.
Указать место размещения данных в таблице. Перекрестные запросы обладают следующими достоинствами:
Возможностью вывода значительного объема данных в компактном и
привычном виде.
Итоговые данные представляется в формате, который идеально подходит для автоматического создания графиков и диаграмм с помощью Мастера диаграмм Access.
Простота и скорость разработки запросов с несколькими уровнями детализации. Высоко структурированные запросы позволяют, например, посмотреть продажи для конкретного товара, нажав кнопку "Промежуточные итоги".
При использовании перекрестных запросов имеется только одно ограничение: нельзя сортировать таблицу результатов по значениям, содержащимся в столбцах. Таким образом, например, невозможно создать запрос. в котором товары упорядочены в строках по объему продаж: в подавляющем большинстве случаев одновременное упорядочивание данных в столбцах по всем строкам невозможно. Однако можно задать сортировку по возрастанию или по убыванию либо отсутствие упорядочивания для заголовков строк. Мастер перекрестного запроса помогает в создании перекрестных запросов. Однако он имеет одно ограничение: мастер создает перекрестный запрос только на основе одной таблицы или одного запроса. Для большинства баз данных потребуется использовать по крайней мере две таблицы. В этом случае для применения Мастера перекрестного запроса необходимо построить запрос, включающий все требуемые таблицы. Таким образом, в следующих разделах описывается создание перекрестного запроса без помощи мастера.
8.1 Создание перекрестного запроса "ежемесячная выручка от продаж"
Для создания перекрестного запроса, в котором в строках выводятся товары, а в столбцах соответствующие им месячные объемы продаж:
Создайте новый запрос и добавьте в него таблицы "Товары". "Заказано" и "Заказы".
Перетащите поля "КодТовара" и "Марка" таблицы "Товары", а затем поле "ДатаРазмещения" таблицы "Заказы".
Выберите команду "Запрос, Перекрестный" (Query, Crosstab). Заголовок окна запроса Запрос1: на выборку (Select Query: Query1) изменится на Запрос1: перекрестный запрос (Crosstab Query:
Query1). Кроме того, в бланк запроса будет добавлена строка "Перекрестная таблица" (Crosstab).
Выберите в списке ячейки "Перекрестная таблица" столбца "КодТовара" значение "Заголовки строк" (Row Heading). Выполните то же самое для столбца "Марка". Эти столбцы являются требуемыми заголовками строк перекрестной таблицы.
Выберите в списке ячейки "Групповая операция" столбца "КодТовара" значение "Условие". В ячейке "Условие отбора" этого столбца введите выражение <=#31.12 . 94#And>=#01. 01. 94# для вывода в перекрестной таблице данных за 1994 год.
Установите курсор в ячейку "Поле" следующего (пустого) столбца и введите следующее выражение:
Объем продаж: Sum([Заказано].[Количество]* [Заказано].[Цена])
Выберите в ячейке "Групповая операция" того же столбца значение "Выражение", а затем в ячейке "Перекрестная таблица" значение "Значение" (Value). В столбце "Объем продаж" вычисляется общий объем заказов на каждый товар, который подставляется в ячейки перекрестной таблицы. Ссылка на таблицу "Заказано" обязательна, иначе будет выдано сообщение об ошибке "Неоднозначная ссылка на поле" (Ambiguous field reference).
Установите курсор в ячейку "Поле" следующего (пустого) столбца и введитe выражение Format([ДатаРазмещения]; "mmm"). Access добавляет имя поля "Выражение1" (Expr1), применяемое по умолчанию. Не меняйте его, т. к. функция Format () создает при запуске запроса имена столбцов, состоящие из трех первых букв названия месяца (формат "mmm"). Выберите из списка в ячейке "Перекрестная таблица" значение "Заголовки столбцов" (Column Heading) (рис. 54).
Нажмите кнопку "Запуск". Через несколько секунд появляется результирующее множество (рис. 55).
Обратите внимание на то, что выведенная перекрестная таблица обладает одним немаловажным недостатком: расположение столбцов определяется алфавитным порядком их заголовков, а не хронологической очередностью. В этом случае требуется использовать фиксированные заголовки столбцов.
8.2 Использование фиксированных заголовков столбцов в перекрестных запросах
В Access можно задать порядок сортировки заголовков строк или столбцов перекрестной таблицы, таким образом определив ее внешний вид. При использовании названии месяцев столбцы упорядочиваются в алфавитном порядке, а не в хронологической последовательности. Чтобы все-таки вывести столбцы в порядке календарной очередности месяцев, необходимо задать фиксированные заголовки. Для соответствующего изменения перекрестного запроса:
Переключитесь в режим конструктора и выведите свойства запроса. В бланке свойств выводится свойство "Заголовки столбцов" (Column Headings), которое имеется только у перекрестных запросов.
Введите краткие названия каждого из месяцев года в поле свойства "Заголовки столбцов" (рис. 56). Необходимо воспроизвести названия без ошибок, в противном случае данные для неправильно заданных месяцев не отображаются. Сокращения требуется заключить в кавычки и разделять названия точками с запятыми. Пробелы не нужны. По завершении ввода всех 12 месяцев закройте бланк свойств.
Нажмите кнопку "Запуск". Теперь заголовки столбцов перекрестной таблицы соответствуют календарной последовательности (рис. 57). Если результирующее множество выглядит не так, как на рисунке, проверьте правильность фиксированных заголовков столбцов, заданных в поле свойства "Заголовки столбцов". Если заголовок столбца введен неправильно, то столбец отсутствует в перекрестной таблице.
Выберите команду "Файл, Сохранить как" и сохраните запрос под именем "Ежемесячная выручка от продаж".Чтобы напечатать перекрестную таблицу, нажмите кнопку "Печать" (Print), а для предварительного просмотра данных перед печатью щелкните по кнопке "Предварительный просмотр" (Print Preview).
8.3 Понижение уровня детализации в перекрестных запросах
Созданный перекрестный запрос выводит данные по всем товарам, по которым были размещены заказы в одном из месяцев 1994 года. Однако управленческому аппарату более высокого уровня обычно требуется информация в виде графика или диаграммы, с помощью которых можно проследить некоторую тенденцию. Таким образом, необходимо сократить число строк и столбцов, так чтобы создать на основе значений перекрестной таблицы удобный для анализа график.
Для создания перекрестного запроса, который выводит ежеквартальную выручку от продаж по типам товаров (а не значению поля "КодЗаказа"):
Выберите команду "Файл, Сохранить как" и сохраните запрос под именем "Ежеквартальная выручка от продаж товаров по типам".
Добавьте в запрос таблицу "Типы".
Для того чтобы четко представлять себе связи между таблицами, щелкните по заголовку каждого списка полей и перетащите их, чтобы они заняли места, показанные на рис. 58.
Перетащите поля "КодТипа" и "Категория" таблицы "Типы" на столбец "КолТовара". В ячейках "Перекрестная таблица" обоих столбцов выберите значение "Заголовки строк".
Удалите столбцы "КодТовара" и "Марка", щелкнув по области выделения столбца, а затем нажав клавишу <Delete> (рис. 58).
Введите в столбец "Выражение!" выражение Format ([ДатаРазмацания] ;
"""Квартал ""q"), которое определяет заголовки столбцов "Квартал 1", ..., "Квартал 4". Несколько кавычек требуется для указания того, что слово Квартал и пробел рассматриваются как строка, а q — как формат.
Откройте бланк свойств и очистите содержимое свойства "Заголовки столбцов", а затем закройте бланк. Если не удалить фиксированные заголовки, то в перекрестной таблице не будет данных. Чтобы ускорить работу запроса, можно задать в поле свойства "Заголовки столбцов" четыре фиксированных названия: "Квартал 1", ..., "Квартал 4".
Нажмите кнопку "Запуск" (рис. 59).
Выберите команду "Вид, Режим SQL" для вывода инструкции SQL (рис. 60). Инструкция содержит операцию transform, в которой определяются данные, содержащиеся в таблице. В операции pivot задаются заголовки столбцов. После ключевого слова in указываются, если есть, фиксированные названия столбцов. Однако слова transform и pivot не являются зарезервированными словами ANSI SQL. Более того, в Access и ANSI SQL ключевое слово in интерпретируется по-разному.
Сохраните запрос, выбрав команду "Файл, Сохранить" (File, Save). Запрос "Ежеквартальная выручка от продаж товаров по типам" используется ниже при рассмотрении многих вопросов.
Перекрестные таблицы, содержащие итоги, которые подводятся через определенные промежутки времени, например через каждый месяц или квартал, обычно используются в качестве данных для графиков.
