- •Содержание
- •Основные понятия и терминология баз данных
- •Работа с таблицами Теоретические сведения
- •Создание базы данных с помощью мастера
- •Создание таблицы при помощи мастера таблиц
- •Создание таблиц путем ввода данных в таблицу
- •Создание таблицы в режиме конструктора
- •Примечание.Рекомендуетсяопределять ключевые поля, хотя это вовсе не обязательно. Если они не были определены, то при сохранении таблицы выдается вопрос, нужно ли их создавать.
- •Типы данных, используемые в поле таблицы
- •Создание в базе данных связей между таблицами
- •Целостность данных и каскадные операции
- •Создание новой таблицы путем импортирования из другой базы данных
- •Создание таблиц в режиме конструктора Проектирование таблицы Модели Структура таблицы Модели
- •Характеристики полей таблицы
- •Создание фиксированных списков
- •Данные для заполнения таблицы Модели
- •Проектирование таблицы Клиенты Структура таблицы Клиенты
- •Проектирование таблицы Купля автомобилей Структура таблицы Купля автомобилей
- •Тип данных Счетчик
- •Создание полей со списком, берущим свои значения из других таблиц
- •Организация таблиц в режиме таблицы Проектирование таблицыМастерские
- •Организация таблиц при помощи мастера создания таблиц Организация таблицыЗаписи работ
- •Связывание таблиц базы данных
- •Проектирование форм Теоретические сведения Способы создания форм
- •Механизм создания формы
- •Изменение макета формы в режиме конструктора Изменение вида формы
- •Проектирование формы на основе таблицы Клиенты Автоматическое создание формы
- •Доработка макета формы
- •Создание диаграммной формы по таблицеМодели
- •Проектирование составной формы Создание составной формы с использованием мастера
- •Оформление составной формы
- •Встраивание в форму кнопок
- •Изменение свойств формы
- •Теоретические сведения о запросах
- •Запросы на выборку и их использование
- •Создание запроса на выборку в режиме конструктора
- •Открытие и запуск запроса
- •Отображение или скрытие поля в результатах запроса
- •Сортировка записей в запросах
- •Построение запросов по базе данных «автомобили» Построение запросов с помощью конструктора по одной таблице
- •Построение запросов по одной таблице с использованием логических функций
- •Задания
- •Построение запросов по нескольким таблицам
- •Задания
- •Добавление вычисляемых полей в запросы
- •[Предпродажная подготовка])*(1 – [Скидка])
- •Группировка данных в запросах
- •Запросы по базе данных борей Импорт таблиц из базы данных Борей
- •Простые запросы по базе данных Борей (а)
- •Параметрические запросы (б)
- •[Введите первую страну] or [Введите вторую страну]
- •Задания (б)
- •Использование шаблонов при организации запросов (в)
- •Запросы с группировкой данных (итоговые запросы) (г)
- •Использование параметров и шаблонов в итоговых запросах (е)
- •Построение запросов на основании запросов (ж)
- •Построение запросов с записями без подчиненных (з)
- •Модифицирующие запросы (е)
- •Запросы создания таблиц
- •Запросы добавления
- •Запросы удаления
- •Запросы обновления
- •Перекрестные запросы (и)
- •Создание отчетов Теоретические сведения
- •Создание ленточного автоотчета
- •Доработка отчета в режиме конструктора
- •Работа с панелью элементов при модернизации отчетов
- •Группировка данных в отчетах
- •Создание почтовых наклеек и серийных писем
- •Создание базы данных на основе имеющихся образцов
Использование шаблонов при организации запросов (в)
При построении запросов в базах данных Accessиспользуются те же шаблоны, что и при написании имен файлов и путей к ним в операционной системеMSDOS, а также некоторые другие:
* любое количество символов;
? один любой символ;
# любая одиночная цифра от 0 до 9;
[список] любой одиночный символ, входящий в список (например, [A-Д] это буква А,Б,В,Г или Д); используется в сочетании с шаблонами * или ?;
[!список] любой одиночный символ, не входящий в список (например [!A-Б] – это любая буква, только не А и не Б); также используется в сочетании с шаблонами * или ?.
Задания
Вывести список всех поставщиков, страна которых начинается на букву Н, а минимальный запас поставляемых ими товаров больше нуля. После перехода в режим таблицы обратите внимание на то, что в строке Условие отбора перед построенном Вами шаблоном появился операторLike. Этот оператор необходим при конструировании шаблонов, но в данном случаеAccessдобавил его в Ваш запрос самостоятельно.
Вывести список марок товаров, количество которых на складе выражается трехзначным числом.
Вывести список клиентов, название которых начинается буквами A,B,C,D,E. Выполнить задание двумя способами, вначале используя логическую функциюOR, а затем – шаблонLike "[A-E]*".
Вывести список клиентов, в телефоне которых отсутствует код (т.е. номер телефона не начинается открывающей скобкой). Используйте шаблон Like "[!(]*".
Используя шаблоны, вывести список клиентов, которые разместили свои заказы в декабре 1997 года.
Аналогично предыдущему запросу, вывести список клиентов, которые разместили свои заказы в апреле 1998 года, но их заказы до сих пор не исполнены.
Вывести список заказов, оформленных каждым сотрудником после вводимой пользователем даты, а город клиента не начинается на букву Б.
Запросы с группировкой данных (итоговые запросы) (г)
Посчитать число заказов для каждой категории товаров.
Посчитать число товаров в каждой категории.
Вывести список всех марок товаров, средняя стоимость доставки которых не менее 100 руб.
Посчитать число всех заказов, оформленных для клиентов из Мехико.
Посчитать число клиентов из каждой страны и вывести упорядоченный в порядке убывания числа клиентов список стран, в которых проживает не менее пяти клиентов.
Для каждого сотрудника старше 40 лет посчитать число клиентов.
Указание. Для вывода сотрудников старше 40 лет создать вычисляемое поле(Now()-Сотрудники![ДатаРождения])/365и в качестве условия отбора ввести условие>40.
Итоговые запросы с использованием условия (Д)
Вначале организовать обычный итоговый запрос «Число заказов у клиентов»: Для каждого клиента посчитать количество оформленных им заказов. Список упорядочить по убыванию числа заказов. Исполнение. Добавить в запрос две таблицыКлиенты и Заказы, в бланк запроса добавить полеНазваниеиз первой таблицы и полеКод Заказа – из второй таблицы. Добавить строкуГрупповые операции, в первом поле оставить значение «группировка», а во втором установить значениеCount. Просмотреть результат, переключившись в режим таблицы.
Доработаем данный запрос. Следующая задача поставлена так: Вывести список клиентов, которые оформили более 10 заказов. Исполнение. В полученном в предыдущем задании запросе в полеКод заказа в строкеУсловие отборадобавить условие:>10.
Затем дорабатываем данный запрос решением следующей задачи: Для каждого клиента посчитать количество заказов, исполненных не ранее 1 июня 1997 года.
Исполнение. Помимо двух имеющихся полей, добавить полеДата Исполнения из таблицыЗаказы. В строкеГрупповая операцияв данном поле появится значение «группировка». Переключиться в режим таблицы и убедиться, что ограничение на дату не выполняется. В строкеГрупповая операцияизменить значение «группировка» на значение «условие». В строкеУсловие отборавписать условие:>=1/06/97. Переключиться в режим таблицы и убедиться в правильности выполнения запроса.
Обратить внимание на то, что одновременно с выбором условия отключился режим вывода данного поля на экран. Включить режим вывода поля на экран и после попытки переключения в режим таблицы прочитать сообщение, выдаваемое Accessв ответ на данное действие.
Используя данную технику, организовать следующие запросы:
Для каждой категории товаров посчитать число товаров, запас которых на складе больше 50.
Для каждого сотрудника посчитать количество клиентов, которым заказ поставлялся по почте.
Для каждого поставщика указать, сколько он поставил различных марок товаров, поставки которых уже прекращены.
Для каждого сотрудника посчитать среднюю стоимость доставки товаров, отосланных в США или в Канаду.
Для каждого сотрудника посчитать количество заказов, оформленных со скидкой.
Указать, сколько раз каждая марка товаров попала в заказы, которые были размещены в первой половине 1994 года.
Для каждого клиента посчитать сумму, уплаченную за каждый заказ (организовать вычисляемое поле Цена*Количество*(1-Скидка)), а затем вывести список клиентов с указанием суммарной стоимости всех произведенных заказов. Список упорядочить в порядке убывания уплаченной суммы. Ввести условие на страну получателя – не Швеция и не Италия.
Вывести список сотрудников с указанием того, кто сколько раз продавал товары со скидкой.
Для каждого сотрудника посчитать общую сумму выручки от всех заказов (вычисляемое поле Цена*Количество*(1-Скидка)) +Стоимость доставки), страна получателя которых – Франция или Италия.
Вывести список клиентов с указанием того, кому сколько раз были проданы товары без скидки, и вывести список первых десяти клиентов, которым чаще всего продавались товары без скидки (нужным образом упорядочить запрос, с помощью контекстного меню активизировать окно «Свойства запроса» и в строке Набор значенийввести цифру 10).
Посчитать общую стоимость каждой марки товаров, поставленных в Германию не по почте (учесть цену единицы товара, количество, скидку и стоимость доставки). Вывести первые 25% самых прибыльных марок.
Вывести список клиентов с указанием общего количества дней ожидания исполнения заказов на товары, минимальных запас которых на складе не равен нулю. Ограничить список выводом первых пяти самых «невезучих» клиентов, которым пришлось дольше всего дожидаться исполнения заказов.