Microsoft Access 2007
Шрифт:
Листинг 6.7.
Запрос на выборку
SELECT Заказы.*, Заказы. Клиент
FROM Заказы
WHERE (((Заказы. Клиент)=1));
7. Теперь перейдите на вкладку Конструктор и выберите команду Выполнить . На рис. 6.16 показан результат выполнения запроса. Если результат выборки содержит только записи, относящиеся к первому клиенту, значит, запрос составлен верно.
Рис. 6.16. Результат выполнения запроса на выборку
8. Щелкните правой кнопкой мыши
9. На вкладке Конструктор в группе Тип запроса нажмите кнопку Удаление .
10. В бланке запроса в строке Удаление в столбце со значком * должно быть установлено значение Из , а в столбце с условием – значение Условие .
Результирующий бланк запроса на удаление показан на рис. 6.17.
Текст запроса на удаление приведен в листинге 6.8.
Листинг 6.8.
Запрос на удаление
DELETE Заказы.*, Заказы. Клиент
FROM Заказы
WHERE (((Заказы. Клиент)=1));
11. Нажмите кнопку Выполнить . Откроется окно подтверждения операции.
12. Нажмите кнопку Да .
13. Откройте таблицу Заказы и посмотрите на внесенные в данные изменения (рис. 6.18). Теперь в таблице не осталось записей клиента с номером 1 .
Рис. 6.18. Таблица Заказы после выполнения запроса на удаление
Обычно запросы на обновление или удаление используются, когда необходимо быстро обновить или удалить большое количество данных. Если нужно удалить несколько записей, как в данном случае, и это проще сделать вручную, можно открыть таблицу в режиме таблицы, выбрать поля или строки, которые требуется удалить, и нажать клавишу Delete .
Теперь удалите запись, являющуюся стороной «один» в отношении «один ко многим».
1. Откройте вкладку Работа с базами данных и в группе Показать или скрыть выберите команду Схема данных . Отобразится схема связей между таблицами базы данных (рис. 6.19).
Вы можете видеть линии, связывающие таблицы и представляющие собой связи между данными. Возле каждой таблицы указано, какой стороной отношения она является. Возле таблицы Товары указана 1 , следовательно, эта таблица является стороной «один» в отношении «один ко многим» к таблице Заказы .
2. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов .
3. В окне Добавление таблицы дважды щелкните кнопкой мыши на названии таблицы Товары . Нажмите кнопку Закрыть .
4. Дважды щелкните кнопкой мыши на звездочке над списком полей, чтобы добавить в выборку все поля.
5. Теперь дважды щелкните кнопкой мыши на названии поля Код , чтобы добавить его в выборку.
6. В бланке запроса в строке Условие отбора для поля Код введите условие выборки [Заказы]![Код] < 4. Таким образом, будут удалены все товары, имеющие код меньше четырех.
7. На вкладке Конструктор в группе Тип запроса нажмите кнопку Удаление .
8. В бланке запроса
в строке Удаление в столбце со знаком * должно быть установлено значение Из , а в столбце с условием – значение Условие .Результирующий бланк запроса на удаление показан на рис. 6.20.
Текст запроса на удаление приведен в листинге 6.9.
Листинг 6.9.
Запрос на удаление
DELETE Товары.*, Товары. Код
FROM Товары
WHERE (((Товары. Код)<4));
9. Нажмите кнопку Выполнить . Откроется окно подтверждения операции.
10. Нажмите кнопку Да . Записи не были удалены, так как существуют зависимые записи в таблице Заказы .
Есть два варианта решения подобной задачи. Если зависимых записей не много, можно удалить их вручную. В другом случае можно изменить свойства связи так, чтобы при удалении записи на стороне «один» удалялись также все зависимые записи. Для этого выполните следующие действия.
1) Нажмите кнопку Нет .
2) Перейдите на вкладку Схема данных .
3) Дважды щелкните кнопкой мыши на связи между таблицами Товары и Заказы . Откроется окно Изменение связей (рис. 6.21).
Рис. 6.21. Окно Изменение связей
4) Установите флажок каскадное удаление связанных полей и нажмите кнопку ОК .
5) Еще раз запустите запрос на удаление.
Проверив записи в таблицах, вы можете убедиться, что удалены не только записи из таблицы Товары , но и зависимые записи из таблицы Заказы .Анализ данных с помощью запросов
Возможности запросов не ограничиваются выборкой и запросами на изменение. С помощью запросов, называемых итоговыми , можно получить статистические данные по одной или нескольким таблицам.
Для анализа данных используются статистические функции.
• Сумма – суммирует элементы в столбце. Работает только с числовыми или денежными данными.
• Среднее – вычисляет для столбца среднее значение. Столбец должен содержать числовые или денежные величины или значения даты или времени. Функция игнорирует пустые значения.
• Число – подсчитывает количество элементов в столбце.
• Максимум – возвращает элемент, имеющий наибольшее значение. Для текстовых данных наибольшим будет последнее по алфавиту значение, причем регистр не учитывается. Функция игнорирует пустые значения.
• Минимум – возвращает элемент, имеющий наименьшее значение. Для текстовых данных наименьшим будет первое по алфавиту значение, причем регистр не учитывается. Функция игнорирует пустые значения.
• Стандартное отклонение – показывает, насколько значения отклоняются от среднего.
• Дисперсия – вычисляет статистическую дисперсию для всех значений в столбце. Эта функция работает только с числовыми и денежными данными. Если таблица содержит менее двух строк, то возвращается пустое значение.
В итоговом запросе вычисляются промежуточные итоги по группам записей. Как правило, итоговый запрос применяется, когда требуется использовать значение результата в другой части базы данных, например в отчете.