Лабораторная работа № 16.

advertisement
Практическая работа №18
Система управления базами данных Microsoft Access 2007.
Анализ и изменение данных с помощью запросов
Создание запросов с параметрами
Пусть в созданной в предыдущей лабораторной работе БД «Учет выдачи и возврата книг» требуется
получить сведения о книгах по определенной тематике, для этого необходимо создать запрос и в
условие отбора ввести нужное значение:
В случае необходимости выдать сведения о книгах по другой тематике нужно изменить условие
отбора. Для того чтобы не менять условие отбора каждый раз, можно создать запрос, в котором
Наименование тематики будет параметром, запрашиваемым при выполнении, для этого в строку Условие
отбора для поля Наименование тематики ввести вместо конкретного значения приглашение к вводу
параметра [Введите тематику:]:
После запуска такого запроса появится диалоговое окно с введенным вами приглашением к вводу
параметра:
1
В результирующее множество запроса попадут все книги с тематикой Информатика, которые имеются
в БД. Запрос может содержать не один, а несколько параметров, и все они по очереди будут
запрашиваться при его выполнении.
Использование выражений в запросах с параметрами
При создании запроса часто используются выражения.
Выражение — это сочетание нескольких (или всех) из указанных элементов: встроенные или
пользовательские функции, идентификаторы, операторы и константы.
Например, следующее выражение содержит все четыре элемента:
=Sum([Закупочная цена])*0,08
В данном примере Sum() — встроенная функция, [Закупочная цена] — идентификатор, * —
математический оператор, а 0,08 — константа.
Логические операторы
Логические операторы применяются для объединения двух логических значений и возврата значения
«истина», «ложь» или null.
Оператор
Назначение
Пример
And
Возвращает значение «истина», если
Выражение1 и Выражение2 истинны.
Выражение1 And
Выражение2
Or
Возвращает значение «истина», если
Выражение1 или Выражение2
истинны.
Выражение1 Or Выражение2
Eqv
Возвращает значение «истина», если
Выражение1 и Выражение2 истинны
или Выражение1 и Выражение2
ложны.
Выражение1 Eqv
Выражение2
Not
Возвращает значение «истина», если
выражение ложно.
Not Выражение
Xor
Возвращает значение «истина», если
истинно Выражение1 или
Выражение2 (но не оба выражения).
Выражение1 Xor
Выражение2
2
Специальные операторы
Принципы использования специальных операторов для возвращения значения «истина» или «ложь»
представлены в следующей таблице.
Оператор
Назначение
Пример
Is Null или Is Not Null
Определяет, является ли
значение Null или не Null.
Поле1 Is Not Null
Like «шаблон»
Сопоставляет строковые
значения с помощью
логических операторов ? и *.
Поле1 Like "инструк*"
Between значение1 And значение2
Определяет, попадает ли
числовое значение или значение
даты в указанный диапазон.
Поле1 Between 1 And 10
- ИЛИ Поле1 Between #07-01-07# And
#12-31-07#
In(значение1,значение2...)
Определяет, входит ли значение
в набор значений.
Поле1 In
("красный","зеленый","синий")
- OR Поле1 In (1,5,7,9)
Выражения можно использовать и в запросах с параметрами, например, запрос по выборке книг,
выданных в определенный период, будет выглядеть следующим образом:
При вводе значений параметров типа Дата необходимо контролировать значения дат, для этого
вызовите окно Параметры запроса (контекстное меню на свободном поле верхней панели
запроса/ Параметры или Конструктор/ Показать или скрыть/ Параметры). В столбец Параметр
введите значение параметра точно так, как он определен в условии отбора. В столбце Тип данных
выберите из раскрывающегося списка тип Дата/время. Аналогично введите второй параметр:
3
Пример использования специального оператора In. Пусть требуется отобрать книги нескольких
авторов. Это можно сделать двумя способами:
1 способ
2 способ
4
Выражения можно формировать с помощью Построителя выражений. Это средство предоставляет
удобный доступ к именам полей и элементов управления, используемым в базе данных, а также к
множеству других встроенных функций, применяемых во время написания выражений.
Построитель выражений предоставляет возможность поиска и вставки компонентов выражения,
которые сложно запомнить, например идентификаторов (имен полей, таблиц, форм, запросов и т. д.), а
также имен и аргументов функций.
С помощью Построителя выражений можно написать выражение «с нуля» или выбрать одно из
готовых выражений для отображения номеров страниц, текущей даты, а также текущей даты и
времени.
Поле выражения
Верхняя область Построителя содержит поле выражения, применяемое для формирования выражения.
Можно ввести выражение в поле вручную или выбрать нужные элементы из трех столбцов в нижней
области построителя, а затем вставить их в поле выражения. Чтобы добавить элемент, дважды
щелкните его и нажмите кнопку Вставить.
Кнопки операторов
В средней части Построителя выражений отображаются кнопки для вставки в выражение наиболее
распространенных арифметических и логических операторов. Чтобы вставить оператор в поле
выражения, нажмите соответствующую кнопку. Чтобы отобразить более длинный список операторов,
которые можно использовать в выражениях, щелкните папку Операторы в левом нижнем столбце,
содержащую элементы выражения, а затем щелкните нужную категорию в среднем столбце. В правом
столбце отобразятся все операторы выбранной категории. Чтобы вставить оператор, дважды щелкните
его.
Элементы выражения
В нижней области содержатся три столбца.
В левом столбце отображаются папки с таблицами, запросами, формами и отчетами в базе данных, а
также доступные встроенные функции и заданные пользователем функции, константы, операторы и
часто используемые выражения.
В среднем столбце отображаются определенные элементы или типы элементов из папки, выбранной в
левом столбце. Например, если выбрать в левом столбце Встроенные функции, то в среднем столбце
появится список типов функций.
Запуск Построителя выражений из запроса
Откройте запрос в режиме Конструктора.
Щелкните ячейку в бланке запроса, куда требуется вставить выражение. Например, щелкните ячейку
Условие отбора в столбце, для которого требуется задать условие отбора, или ячейку Поле в столбце,
где требуется создать вычисляемое поле.
На вкладке Конструктор в группе Настройка запроса щелкните Построитель.
5
Использование статистических функций в запросе
Другим типом расчетов, которые могут выполняться в запросе, является подсчет итоговых значений.
Например, для числового поля таблицы можно вычислить среднее значение или сумму значений для
всех или отобранных записей, можно подсчитать количество записей, возвращаемых запросом, и т. д.
В этих запросах используются статистические функции. Описание этих функций приведено в таблице.
Функция
Описание
Avg()
Вычисляет арифметическое среднее набора чисел, содержащихся в указанном поле запроса
Count()
Вычисляет количество непустых записей, возвращаемых запросом
First()
Возвращает значение поля из первой записи результирующего запроса
Last()
Возвращает значение поля из последней записи результирующего набора
Max()
Возвращает максимальное значение из набора, содержащегося в указанном поле
Min()
Возвращает минимальное значение из набора, содержащегося в указанном поле
Sum()
Возвращает сумму набора значений, содержащихся в заданном поле
Использование статистических функций для расчета итоговых значений тесно связано с применением
групповых операций в запросе. Групповые операции позволяют задать группы, для которых
выполняются вычисления. Ниже приведены примеры таких расчетов, как на всем множестве записей,
так и на подмножествах, отобранных условиями в запросе.
Необходимо подсчитать количество книг в библиотеке по каждой тематике, для этого:
1) с помощью Конструктора создайте запрос на основе таблиц Книги и Тематика;
2) поместите в бланк запроса поля Наименование тематики и Наименование книги;
3) щелкните на кнопке
Групповые операции на панели инструментов. В бланк запроса
добавляется строка Групповая операция, содержащая по умолчанию в каждой ячейке значение
Группировка;
4) для поля Наименование тематики оставьте значение Группировка, для поля Наименование книги
выберите из списка функцию Count;
5) нажмите кнопку Запуск на панели инструментов для просмотра результатов запроса. Вы получите
таблицу, которая содержит список тематик книг, и для каждой тематики указывается количество
книг в библиотеке, относящихся к ней.
В предыдущем примере расчеты производились над всеми имеющимися в таблице Тематика
записями. Однако иногда требуется выполнить вычисления только над отобранным набором записей.
Для этого вместе с групповыми операциями необходимо использовать и параметры.
Способы объединения таблиц в запросах
Когда в запрос включатся несколько таблиц, для получения нужных результатов используются
объединения. Объединение помогает извлечь из каждой включенной в запрос таблицы только нужные
записи, на основании сведений о том, как эти таблицы связаны с другими таблицами в запросе.
Существует следующие основные типы объединений: внутренние объединения и внешние.
Внутренние объединения — наиболее часто встречающийся тип объединений. Они представляют
собой запросы, в которых строки одной из объединяемых таблиц соответствуют строкам другой
таблицы по значениям в связанных полях. При выполнении запроса с внутренним объединением в
операцию включаются только строки, имеющие одинаковые значения в обеих связанных таблицах.
Когда следует использовать внутреннее объединение?
6
Внутреннее объединение используется в том случае, когда запрос должен возвращать только те
строки обеих таблиц объединения, значения связанных полей которых совпадают.
Как следует использовать внутреннее объединение?
В большинстве случаев для использования внутреннего объединения не нужно предпринимать какихлибо действий. Если ранее в окне схемы данных были созданы связи между таблицами, то при
добавлении связанных таблиц в режиме конструктора запроса линии объединения создаются
автоматически.
Внешние объединения представляют собой запросы, в которые включаются все строки одной
таблицы, а также строки другой таблицы, значения которых в первой и второй таблице совпадают,
несмотря на то, что некоторые из строк с обеих сторон полностью совпадают.
Внешние объединения являются направленными, они могут быть левыми или правыми. Можно легко
понять, какая таблица в данном объединении является левой или правой, дважды щелкнув линию
связи и посмотрев в диалоговое окно Параметры объединения.
Поскольку некоторые строки с одной стороны внешнего объединения не будут иметь в другой
таблице соответствующих им строк, некоторые поля, принадлежащие другой таблице и возвращаемые
в результатах запроса, будут иметь пустые значения.
Когда следует использовать внешнее объединение?
Используйте внешнее объединение, когда возникнет необходимость, чтобы в результаты объединения
были включены все строки одной из таблиц и только те строки другой таблицы, значения связанных
полей в которых соответствуют значениям связанных полей в первой таблице.
Как следует использовать внешнее объединение?
Внешние объединения создаются путем изменения внутренних объединений.
Пусть в таблице Тематика присутствует тематика, по которой нет книг в таблице Книги. Рассмотрим
различные варианты выбора книг по тематикам:
1) с помощью Конструктора создайте запрос на основе таблиц Книги и Тематика;
2) в режиме Конструктора запроса дважды щелкните объединение между таблицами, которое следует
изменить. На экране появится диалоговое окно Параметры объединения. В этом окне обратите
внимание на варианты: параметр 1 соответствует внутреннему объединению, параметр 2 – левое
внешнее объединение, параметр 3 – правое внешнее объединение. Установите объединение всех
записей из таблицы Тематика и только тех записей из таблицы Книги, в которых связанные поля
совпадают;
3) В Microsoft Access отобразится объединение и стрелка, соединяющая источник данных, все строки
которого включаются в объединение, с источником данных, из которого выбираются только
строки, удовлетворяющие условию объединения;
4) нажмите кнопку Запуск на панели инструментов для просмотра результатов запроса. Вы получите
таблицу, которая содержит список всех тематик книг, для каждой тематики указаны книги,
относящиеся к ней, при этом одна их тематик будет иметь пустое значение;
5) установите для этой связи внутреннее объединение, просмотрите результат и сравните его с
результатом внешнего объединения.
Индивидуальное задание
1. Создать запрос:
a. выводящий информацию о книгах, взятых в определенный день;
b. позволяющий отобрать всех читателей, записавшихся в библиотеку в октябре текущего
года;
c. подсчитывающий количество обращений читателей в библиотеку (предусмотреть
ситуацию, когда читатель записался в библиотеку, но не брал книг, в этом случае запрос
должен выдавать для такого читателя 0);
d. выводящий информацию о книгах из всех тематик, содержащих корень «инфо» (например,
«Информатика», «Информационные технологии в образовании»);
e. выводящий фамилии задолжников вместе с названиями книг, которые они не вернули.
7
2. Создать базу данных в соответствие с темой (выбор варианта строго в соответствие с номером
студента в журнале группы).
Требования к базе данных:
1. База данных должна содержать указанные в вашем варианте таблицы. В таблице должны
быть отражены все указанные поля.
2. Определить ключевые поля.
3. На схеме данных установить связи и охарактеризовать их тип.
4. Минимальное количество записей в каждой таблице базы данных – 10.
5. Создать формы для ввода данных для каждой таблицы.
6. Создать четыре различных запроса: a) с использованием выражений; b) с использованием
статистических функций; c) с использованием параметров; d) на создание различных
способов объединения таблиц в запросах.
7. Создать отчет по любому из запросов, в котором будет также отображаться текущая дата и
время.
8. Повышающий коэффициент – реализация четырех запросов на создание таблиц,
обновление, добавление и удаление.
Варианты:
1. Учет авиапассажиров.
Авиапассажиры (код авиапредприятия, код города назначения, код страны города назначения, номер
рейса, дата вылета, фамилия, адрес)
Авиапредприятия (код, наименование, адрес, телефон)
Города (код, наименование)
Страны (код, наименование страны).
2. Учет выпуска изделий.
Выпуск изделий (код изделия, код предприятия, количество выпускаемых изделий (шт.), отпускная
цена, дата выпуска)
Изделия (код, наименование)
Предприятия (код, наименование, адрес, телефон, код города)
Города (код, наименование).
3. Учет поставок товаров.
Поставки товаров (код поставщика, код товара, количество, цена, единица измерения, дата поставки)
Поставщики (код, наименования, адрес, телефон, код города)
Товары (код, наименование)
Города (код, наименование).
4. Учет уволившихся с предприятия.
Увольнения (код причины увольнения, дата увольнения, номер приказа, табельный номер уволенного)
Подразделения (код, наименование)
Причины увольнения (код, наименование)
Сотрудники (табельный номер, фамилия, код подразделения, пол).
5. Учет призеров олимпийских игр.
Призеры (код страны, код вида спорта, индивидуальный номер олимпийца, число завоеванных золотых,
серебряных и бронзовых медалей)
Страны (код, наименование)
Виды спорта (код, наименование)
Участники (индивидуальный номер, код страны, фамилия).
6. Учет проданных товаров.
Продажа товаров (код торгового предприятия, код товаре стоимость проданного товара, дата продажи)
Торгующие предприятия (код, наименование, директор, телефон)
Товары (код, наименование, код типа товара)
Типы товаров (код, наименование).
7. Учет больных в больнице.
Больные (фамилия, код диагноза, дата начала лечения в больнице,
адрес, код подразделения, стоимость лечения за один день, дата выписки,
дата рождения больного, код страховой компании)
Диагнозы (код, наименование)
Подразделения (код, наименование)
8
Страховые компании (код, наименование).
8. Учет движения общественного транспорта.
Движение транспорта (код типа транспорта, номер и длина маршрута, табельный номер водителя, дата
выхода, код депо)
Типы транспорта (код, наименования)
Водители (табельный номер, фамилия)
Депо (код, наименование).
9. Учет дорожно-транспортных происшествий.
Дорожно-транспортные происшествия (код населенного пункта, содержание и дата нарушения, код
подразделения милиции, зарегистрировавшего ДТП, и фамилия инспектора, число убитых и раненных,
материальный ущерб)
Населенные пункты (код, наименование, код района)
Подразделения милиции (код, наименование)
Районы (код, наименование).
10. Учет платежных поручений в банке.
Платежные поручения (код банка, код клиента, код вида платежа, дата, сумма, номер поручения)
Клиенты банка (код, наименование, адрес, директор, телефон)
Виды платежей (код, наименование)
Банки (код, наименование).
11. Учет кадров.
Сотрудники (табельный номер, фамилия, дата рождения, код специальности, код подразделения, дата
приема, дата начала трудовой деятельности, оклад, образование, код должности)
Специальности (код, наименование)
Подразделения (код, наименование)
Должности (код, наименование).
12. Учет очередников на получение жилья.
Очередники (фамилия, номер очереди, номер приказа, кoд организации, код основания
включения в очередь, дата, паспортные данные, число членов семьи, адрес)
Организации (код, наименование, код города)
Основания включения в очередь (код, наименование)
Города (код, наименование).
13. Учет успеваемости студентов.
Испытания (код предмета, дата, оценка, номер, зачетки, код вида испытания (зачет, экзамен, реферат,
курсовая работа, практика))
Предметы (код, наименование)
Студенты (номер зачетки, фамилия)
Виды испытаний (код, наименование).
14. Учет книг в библиотеке.
Книжный фонд (код тематики, наименование, авторы, дата, число экземпляров, адрес хранения, код
издательства, код отдела библиотеки)
Тематика (код, наименование)
Издательства (код, наименование, адрес, телефон)
Отделы библиотеки (код, наименование).
15. Учет успеваемости школьников.
Оценки (код предмета, дата, оценка, учетный номер школьника, табельный номер учителя)
Предметы (код, наименование)
Школьники (учетный номер школьника, фамилия, дата рождения, номер класса, пол)
Учителя (табельный номер, фамилия, дата рождения, пол).
9
Download