Слайд 1Тема 3
Основные принципы анализа данных в реляционных БД на примере
СУБД MS Access
Слайд 2План
Создание запросов на выборку
Операторы отбора в запросах. Запросы на
выборку с группировкой данных и перекрестными итогами
Создание запросов, изменяющих таблицы
Создание
отчетов
Слайд 31. Создание запросов на выборку
Слайд 4Запросы - специальные объекты, предназначенные для выборки данных из таблиц
базы, а также для выполнения вычислений и других операций с
базовыми таблицами, включая их преобразования.
Различают запросы на выборку данных из таблицы (таблиц) и запросы на изменение данных таблицы (таблиц).
Одним из преимуществ запросов является то, что они позволяют достаточно быстро отобрать необходимые данные из нескольких связанных таблиц, но запросы полезны и при работе с одной таблицей. Все приемы, используемые при работе с единственной таблицей, годятся и для сложных многотабличных запросов.
Слайд 5Алгоритм.
Для построения любого запроса на выборку нужно выполнить следующие действия.
1.
Вызвать на экран бланк QBE - бланк для конструирования запроса
по образцу, где образец - указанные пользователем поля, выражения, условия, параметры.
2. Проанализировать задачу и определить, какие именно поля необходимо отобрать запросом.
3. Проанализировать, в каких таблицах содержатся эти поля, и добавить в бланк запроса эти таблицы. Если добавлены таблицы не связаны, добавить еще одну таблицу из базы данных, которая будет связующей (проанализировать, какую именно, это обычно подчиненная таблица в связях один-ко-многим).
Слайд 64. Проанализировать, есть ли в задаче необходимость отобрать запросом поля,
которых нет ни в одной из таблиц. Если есть -
то это поля, которые запрос должен создать по выражению, указанному пользователем, такие поля называются вычисляемыми полями.
5. Определить, из каких полей будет состоять вычисляемое поле, и в каких таблицах эти поля содержатся, и добавить в бланк запроса и эти таблицы также (если они еще не были добавлены ранее).
6. Определить, необходимо ли запросом выводить итоговые поля, использующие одну из встроенных в MS Access функций. Если да, добавить в бланк запроса строку для выбора итоговой (группирующей) функции.
7. Определить, удобно ли будет сделать запрос перекрестным с итоговой (группирующей) функцией в области данных запроса. Если да, преобразовать тип запроса в перекрестный (это вариант выборки).
Слайд 7Окно конструктора запросов разделено на две части. В верхней находятся
списки полей таблиц или запросов, на основе которых создается новый
запрос. В нижней располагается бланк QBE (Query by Example - запрос по образцу).
Каждый столбец бланка QBE представляет одно поле, которое используется в запросе.
Слайд 8Первая строка бланка запроса «Поле» служит для выбора полей, которые
должны присутствовать в наборе записей, используемых для сортировки данных или
для выбора информации из таблицы.
Во второй строке бланка запроса «Имя таблицы» MS Access выведет имя таблицы, из которой выбрано поле.
В третьей строке бланка «Сортировка» пользователь может задать, нужно выполнять сортировку по выбранному или вычисляемом полю.
Флажки в четвертой строке бланка «Вывод на экран» отвечают за вывод полей в наборе записей.
Символ «*» означает «Все поля».
Слайд 9Пример 1: выбрать из базы данных информацию о заказе в
разрезе клиентов, запрос должен отобрать дать заказов, названия товарных групп,
названия товаров, количество, цену и сумму заказа по каждому товару, запланированную дату оплаты, ФИО ответственного сотрудника.
Слайд 14Примеры 2, 3, 4: создание запроса на выборку данных с
условиями на дату, на наименование клиента, на сумму заказа.
Запросы с
условиями отбора можно реализовывать многими средствами, это могут быть как запросы на выборку, так и запросы на изменение, источником данных для запроса могут быть как таблицы, так и уже готовый другой запрос на выборку, условие может быть как четко указано в строке условий, так и указано в виде переменного параметра или в строке условий, или описанного в свойствах запроса.
Конкретные примеры реализуем на основе предыдущего запроса Запрос 1, в конструкторе.
Слайд 17Если пользователя интересует несколько значений, можно ввести их в строку
«Условие отбора», разделяя логическим оператором Or.
Например, условие
Like "А *" Or
Like "Г *" позволяет отобрать все записи для названий на соответствующие буквы. Можно также вводить каждое из значений, интересующие в строки «Условие отбора» и «или» в столбце поля, по которому ведется поиск. Например, пользователь можете ввести А * в строку «Условие отбора», Г * - в следующую строку (первый из строк «или») и т. д.
Когда заданы для некоторого поля несколько условий отбора, соединенных логическим оператором Or, то для того, чтобы запись была отобрана, истинным должно быть хотя бы одно из них.
Слайд 19Когда пользователь вводит условия отбора для нескольких полей, то все
выражения в строке «Условие отбора» или в строке «или» должны
принимать значение Истина для любой записи, которая включается в набор записей запроса. Это означает, что Access выполняет логическую операцию AND над условиями отбора, находящихся в одной строке.
Например, если в строке «Условие отбора» ввести А * для поля Наименование и <3 для поля Цена, то в набор записей запроса попадут только наименования на букву А, по цене не более 3 у.е.
Если же в строке «Условие отбора» для поля Наименование ввести значение А * и выражение
> = 2 And <= 10 для поля Цена, то будут отобраны наименования на букву А, по цене от 2 до 10 у.е.
Слайд 21 2. Операторы отбора в запросах. Запросы на выборку с
группировкой данных и перекрестными итогами
Слайд 22Операторы сравнения Between, In и Like.
Кроме обычных операторов сравнения, MS
Access предоставляет три специальные операторы, полезные для отбора данных, выводимых
в наборе записей запроса.
Like - используется для сравнения строчного выражения с образцом в поле. Для аргумента образец можно задавать полное значение (например, Like "Иванов") или использовать подстановочный знаки для поиска диапазона значений (например, Like "Ив *").
Слайд 23Between ... And - определяет принадлежность значения выражения указанному диапазону.
Оператор Between ... And часто используют для проверки, попадает значение
поля в указанный диапазон чисел. Если значение поля попадает в диапазон, задаваемый (например, between 18 and 30), оператор Between ... And возвращает True; в противном случае возвращается значение False. Логический оператор Not позволяет проверить противоположную условие.
In - проверяет, совпадает значение выражения с одним из элементов указанного списка. Если выражение содержится в списке значений, оператор In возвращает True; в противном случае возвращается значение False. С помощью логического оператора Not можно проверить обратную условие (то есть, выражение не принадлежит списка значений).
Слайд 24Подстановочные знаки * (звездочка),? (знак вопроса), # (знак числа) и
[ (открывающая квадратная скобка) рассматриваются как образец для поиска этого
символа только при выводе их в квадратные скобки.
Слайд 26Создание запроса с группировкой и итоговой функцией требует лишь нажатия
инструментальной кнопки Сумма, после чего в бланке запроса появится дополнительная
строка Групповая операция. В этой строке можно выбрать как показатель для создания группы, так и для отдельного поля функцию для итогов по группам (например, функцию Сумма, Среднее, Минимум, Максимум, Количество и т.п.).
Слайд 28Создание перекрестного запроса требует изменить тип запроса с обычного запроса
на выборку в перекрестный в пункте меню Запрос.
После этого в
бланке запроса появятся дополнительные строки Групповая операция и Перекрестная таблица. Необходимо выбрать заголовки строк и столбцов будущей таблицы (той, которую сформирует этот запрос на экране), а также значение, которое будет подсчитываться, и функцию для подсчета.