Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БазыДанных_ЛАБ_РАБОТЫ.doc
Скачиваний:
2
Добавлен:
24.11.2019
Размер:
4.85 Mб
Скачать

Окончание табл. 2.3

Логический оператор

Описание

Пример

Поле

Значение

Описание

<

Меньше

Действие аналогично выше описанному

>=

Больше или равно

<=

Меньше или равно

=

Равно

<>

Не равно. Можно использовать, как в числовых полях, так и в текстовых

Страна

<> “Германия”

Выбирает все страны, кроме Германии

Or

Логическое «ИЛИ»

Город

“Гамбург” Or “Лондон”

Выбирает только Гамбург и Лондон

Not

Логическое «НЕ»

Вид

Not “Мотоциклы”

Выбирает все виды товаров, кроме мотоциклов

And

Логическое «И»

Цена

>1000 And <5000

Выбирает цены, лежащие в диапазоне 1000  5000

3. Расширенный фильтр.

Сложную фильтрацию удобнее всего производить при помощи режима «Расширенный фильтр». Этот режим можно активизировать следующим образом: из меню Записи выбрать пункт Фильтр, а из него – Расширенный фильтр (рис. 2.14).

Рис. 2.14. Окно Расширенный фильтр

Пусть, например, требуется отфильтровать все записи про мотоциклы, стоимостью от 3000 до 7000, а также стоимостью свыше 10 000, причем поле Страна должно быть отсортировано по алфавиту. Для этого, прежде всего, нужно в бланк фильтра добавить соответствующие поля, а именно: Страна, Вид, Цена. Поля добавляются одним из трех возможных способов:

  1. переносятся мышью из таблицы в бланк фильтра (см. рис. 2.14);

  2. добавляются при помощи двойного щелчка на соответствующем поле таблицы;

  3. выбираются из раскрывающихся списков.

Для добавленных полей задаются условия сортировки и отбора и запускается фильтр (рис.2. 14). При корректном порядке работы на экране останется 14 записей.

2.4. Экспорт таблиц в другие базы данных

Любую таблицу базы данных можно экспортировать в другую базу. Для этого, находясь в главном меню базы данных нужно выбрать экспортируемую таблицу и из меню Файл выбрать пункт Экспорт…, а после выбора необходимой базы нажать кнопку Ок. Например, пусть требуется экспортировать преобразованную таблицу Сотрудники из текущей базы db234 в базу Мои документы / Kom234 / UCH_BASE на рабочей станции пользователя. Выбирается таблица Сотрудники / Файл / Экспорт… / Kom234 / UCH_BASE / Ок / Да (заменить). Открытие таблицы Сотрудники в базе UCH_BASE показывает появление дополнений, выполненных в базе db234.

3. Запросы

3.1. Создание и использование запросов на выборку

Запрос на выборку позволяет:

  • объединить несколько таблиц, имеющих одинаковые поля, в одну;

  • выбирать и сортировать данные, соответствующие определенному критерию из одной или нескольких таблиц;

  • создавать новые вычисляемые поля различной степени сложности с использованием функций и формул.

Запрос, как правило, создается при помощи конструктора, хотя в MS Access предусмотрена возможность создания запросов мастером.

Порядок создания запросов на выборку.

  1. Открыть базу db234 и находясь в главном меню базы данных перейти во вкладку Запросы.

  2. Нажать кнопку Создать и выбрать из списка режимов создания запроса пункт Конструктор.

  3. В появляющемся на экране меню Добавление таблицы (рис. 3.1). В этом меню отображаются все таблицы, которые находятся в базе данных. Выбрать таблицу Учебная и нажать кнопку Добавить, а затем – кнопку Закрыть.

Рис. 3.1. Меню Добавление таблицы

  1. Внешне конструктор запросов похож на окно расширенного фильтра. Разница заключается в том, что в запрос можно добавить несколько таблиц. Созданный запрос еще не является запросом в полном понимании, так как недостаточно добавить в запрос таблицы, в запрос нужно добавить еще поля из этих таблиц, тем самым, указав MS Access, по каким полям нужно производить выборку. Поля в запрос можно добавлять так же, как в бланк расширенного фильтра. Добавить в бланк запроса несколько полей (рис. 3.2).

  2. Для того, чтобы активизировать запрос, т.е. увидеть результат его действия, его нужно запустить. Для этого из меню Запрос выбрать пункт Запуск, либо нажать на соответствующую кнопку (рис. 3.2) на панели инструментов. Данный запрос показывает содержимое выбранных в соответствии с условиями отбора полей из таблицы Учебная. Закрытие с подтверждением сохранения и выбором наименования сохраняет во вкладке Запросы запрос Запрос1. Этот запрос существует как самостоятельная таблица, которую можно использовать в дальнейшей работе с базой. Для редактирования запросов они открываются в Конструкторе подобно таблицам.

  3. В запрос можно добавлять новые, вычисляемые поля. Пусть, например, требуется добавить в созданный запрос поле Стоимость, в которое будет помещаться произведение полей Цена и Количество. Прежде чем создавать поле следует внимательно ознакомиться с рядом рекомендаций:

  • имя вычисляемого поля имеет такую структуру: имя поля : выражение. Имя от выражения отделяется знаком «двоеточие»;

Рис. 3.2. Бланк запроса

  • если в выражении вычисляемого поля требуется сделать ссылку на какое-либо существующее поля запроса, то это поле указывается в прямоугольных скобках, например, [Цена];

  • если требуется присвоить какому либо полю текстовое выражение, или просто поместить в поле текстовое выражение, то это выражение указывается в кавычках, например, [Страна] = “Германия”;

  • чтобы облегчить ввод выражения можно использовать окно «Область ввода» (<Shift> + <F2>), набрать выражение, а затем закрыть окно с сохранением.

Для решения текущей задачи необходимо открыть Запрос1 в Конструкторе, добавить поля Цена и Количество, и удалить все условия отбора. Установить курсор в позицию нового поля (рис. 3.3) и нажать сочетание клавиш (<Shift> + <F2>).

Рис. 3.4. Создание вычисляемого поля

В результате на экране появиться окно Область ввода, в которое нужно поместить соответствующее выражение (рис. 3.5) и нажать кнопку Ок.

Рис. 3.5. Окно «Область ввода»

Запуск сформированного запроса формирует таблицу запроса с новым вычисленным полем Стоимость (рис.3.6).

Рис.3.6. Запрос с вычисляемым полем

  1. В вычисляемом поле запроса могут использоваться функции. Для примера используем функции даты и времени (табл. 3.1). Пусть требуется создать поле, в которое будет выводиться текущая дата. Это поле будет выглядеть так:

СЕГОДНЯ : Date(). Если нужно создать поле, в которое будет выводиться день, из какой либо даты, то оно должно выглядеть так: ДЕНЬ : Day(21.11.2005) и т.д. Описание всех функций MS Access есть в справке к СУБД, которую в любой момент можно вызвать нажатием клавиш F1 / Оглавление / Работа с выражениями / Функции / (Дата/время, … ).

Таблица 3.1

Функции даты и времени MS Access

Функция

Описание

Date()

Возвращает текущую дату. Функция не имеет аргумента.

Day()

Возвращает день из даты, указанной в аргументе.

Month()

Возвращает месяц из даты, указанной в аргументе.

Year()

Возвращает год из даты, указанной в аргументе.

Time()

Возвращает текущее время. Функция не имеет аргумента.

Second()

Возвращает секунды из времени, указанной в аргументе.

Minute()

Возвращает минуты из времени, указанной в аргументе.

Hour()

Возвращает часы из времени, указанного в аргументе.

Now()

Возвращает текущее время и дату. Функция не имеет аргумента.

  1. Очень часто при реализации конкретных практических задач возникает потребность использовать так называемый условный оператор, который позволяет выбрать продолжение работы с базой в зависимости от выполнения или невыполнения условия. Именно это и позволяет реализовать элементы диалога в работе. Условный оператор имеет следующий синтаксис:

iif (Выражение; Значение ИСТИНА; Значение ЛОЖЬ).

Смысл этой записи заключается в следующем: если Выражение (как правило логическое), указанное в аргументе выполняется, то в поле выводится Значение ИСТИНА, а если не выполняется, то Значение ЛОЖЬ. Например, для запроса, созданного на основе таблицы Учебная можно создать поле с условным оператором Категория товара, в котором выводится словосочетание «Дорогой товар», если его цена больше либо равна 5000, а иначе поле остается пустым (рис. 3.7).

Категория товара =

Нет

Да

Дорогой товар

Рис. 3.7. Блок-схема работы поля Категория товара

Создаваемое поле должно иметь следующее выражение:

Категория товара: iif([Цена]>=5000;"Дорогой товар";"").

  1. Для создания выборки данных из нескольких таблиц, имеющих общие по смыслу поля, необходимо установить связи между этими таблицами, чтобы данные из разных таблиц были сопоставимы друг с другом. Роль связывающих играют ключевые поля таблиц.

Пусть требуется, например, на основе исходных таблиц Сотрудники, Оклад и Личные данные создать запрос, включающий поля Фамилия, Имя, Должность, Подразделение, Режим работы, Оклад и Количество иждивенцев.

Для сопоставления полей Режим работы и Количество иждивенцев в обеих таблицах должно быть общее по смыслу применения поле с однозначными данными, каковым может быть Табельный номер. Аналогично поле Должность обеспечивает однозначность выборки из поля Оклад. Поэтому указанные поля необходимо сделать ключевыми в соответствующих таблицах.

Задание ключевых полей выполняется следующим образом:

  1. открыть таблицу Сотрудники в Конструкторе;

  2. установить курсор на поле Табельный номер и нажать кнопку Ключевое поле (рис. 3.8.), в результате чего слева от поля появится значок «ключ»;

Рис. 3.8. Создание ключевого поля

  1. установить аналогично для таблицы Оклад ключевое поле Должность, а для таблицы Личные данные ключевое поле Табельный номер;

  2. следующий шаг – создание схемы данных, для чего из меню Сервис выбрать пункт Схема данных / из меню Связи выбрать Добавить таблицу… / Оклад / Добавить / Закрыть;

  3. результатом предыдущих действий является схема данных, показанная на рис.3.9, в которой имеется связь между таблицами Личные данные и Сотрудники, которая возникла при подстановке поля Отчество, в данном случае лишняя и подлежит удалению;

Рис.3.9. Схема данных после подбора таблиц

  1. для удаления лишних связей необходимо щелкнуть правой клавишей мыши по вертикальной части линии связи и выбрать пункт удалить с подтверждением;

  2. для установления необходимых связей необходимо установить указатель мыши на какое либо поле первой таблицы, нажать левую кнопку мыши и удерживая ее, переместить на нужное поле второй таблицы (при появлении меню Изменение связей выбрать Создать). Установить следующие связи: таблицы Оклад и Сотрудники связать по полю Должность, а таблицы Личные данные и Сотрудники связать по полю Табельный номер (рис.3.10), закрыть схему связей с подтверждением сохранения;

  3. теперь можно перейти собственно к созданию запроса на выборку из нескольких связанных между собой таблиц, для чего перейти во вкладку Запросы главного меню базы данных и создать новый запрос при помощи Конструктора;

  4. добавить в запрос таблицы Сотрудники, Оклад и Личные данные, а из них указанные на рис.3.11 поля;

  5. запуск созданного запроса Запрос2 объединяет данные из трех таблиц и представляет их, как одну таблицу. Запрос2 следует закрыть с сохранением.

Рис. 3.10. Готовая схема данных

Рис. 3.11. Конструктор запросов с добавленными таблицами