Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Запросы - задание к Лаб по БД.doc
Скачиваний:
6
Добавлен:
10.11.2018
Размер:
4.27 Mб
Скачать

Запустить программу ACCESS (Пуск – программы – Microsoft Office - Microsoft Office ACCESS )

1.Создать базу данных Месяц_год.mdb:

Значок Новая база данных – Имя Файла (Месяц_год) и путь к своей рабочей папке – Создать:

2.Создать таблицы «Разделы», «Переплеты», «Форматы», «Издательства», «Книги», базы данных Месяц_год.mdb. - вставить информацию из документа Месяц_год.xls

Таблицу “Книги” получить из Листа “Этап1” рабочего файла “Месяц_год.xls”

Как создавать:

Внешние данные – EXCEL – Ввести Имя Таблицы и Путь к своей рабочей папке – Импортировать данные источника в новую таблицу в текущей базе данных – Выбрать лист с нужной Таблицей EXCEl (например, Форматы) – далее по тексту (Убрать метку “Создать ключевое поле автоматически”).

Для каждой Таблицы создать ключевое поле (Код формата, Код переплёта…. Оно явл-ся индексированным, Длина его – длинное целое).

Все поля в таблицах отметить поля как обязательные.

Тип поля “Цена” задать как денежный.

Если Таблица “Форматы” уже попала в базу данных без коэффициента приведения:

Вставить в базу данных Лист “Форматы_прив” из Файла “Форматы_прив.xls” папки ИСЭ_ИТЭ.

Создать в Таблице “Форматы” из БД поле “Коэф_прив” (числовое, одинарное с плавающей точкой)

Скопировать столбец с коэф.приведения из Таблицы “Форматы_прив” в столбец “Коэф_прив” Таблицы “Форматы ”.

3.Типичные ошибки при работе в access.

1)В таблице есть пустые строки – их надо удалять, иначе СУБД не даст создать ключевое поле или индексное поле.

2)Не совпадает размер связующих полей в 2-х Таблицах.

Например:

В Таблице “Книги” поле “Код формата” длинное целое, а в Таблице “Форматы” поле “Код формата” одинарное с плавающей точкой.

4.Создать схему данных – взаимосвязь всех Таблиц между собой:

Работа с Базами данных – Схема данных.

Перетащить Таблицы из перечня Таблиц в схему данных.

Типы и размеры полей должны совпадать.

Установить связи между Таблицами “Один ко многим” (Обязательно установит значок “Сохранение целостности”)

5.Запросы.

Чтобы создать Запрос, НАДО: 1)Понять задачу

А)Какую информацию надо вывести -> какие поля в итоговой Таблице должны быть и откуда их взять (из существующих Таблиц, Запросов… или вычисляемые поля)

Б)какие Таблицы (или Запросы) как исходные для этого нужны.

Запросы создавать в режиме Конструктора: Создание – Конструктор запросов – Добавить необходимые Таблицы в поле Конструктора запроса (правой кнопкой мыши по свободному полю).

В строку “Таблицы” Таблицы конструктора занести необходимые Таблицы.

В строку “Поле” ” Таблицы конструктора занести необходимые поля Таблиц и вычисляемые поля.

В строку “Условие отбора” занести необходимые условия для выбора заданной информации.

Отсортировать строки в соответствии со здравым смыслом.

Задание по запросам.

Приведённый объём = Кол-во страниц*коэф.приведения.

1 Запрос - Запрос на выборку информации.

выборку данных из таблицы Книги при следующих условиях:

·    книги московских издательств (вывести названия полей, а не коды)

- по разделам Техника и технология, Компьютерная литература;

·    тираж издания от 5 до 30 тыс. экз.;

·    объем издания не менее 5 прив.печ.л.;

  • тип переплета “обл”.;

В данном случае необходимо использовать таблицы БД: Книги, Разделы, Издательства, Форматы, Переплеты.

Используемые функции:

  • Like - ищет текст, стоящий у неё в аргументе, в названии поля (Like”Техни*” Or Like”Комп*”)

  • OR (хотя бы одно из условий выполняется)

  • AND (все условия должны выполняться одновременно)

  • >=

  • <

  • =

  • Between (Например,Between 5 And 7 – от 5 до 7)

Как оставить n десятичный знак в величине P: INT(P*10n)/ 10n

Для вычисления приведённого объёма пользоваться построителем:

  • В строке “Поле” Таблицы конструктора ввести название нового поля “Прив_объём:”

  • Правой кнопкой по полю Таблицы построителя – Построитель (Далее выбрать Таблицу Книги поле “Тираж” и Таблицу “Формат” Поле “Коэф приведения”)

1.1 Запрос – с параметрами – Назвать “с параметрами”

Использовать в качестве основы предыдущий запрос.

Скопировать его и сохранить под названием “Перекрёстный”.

В качестве параметров выбрать (т.е. заменяем точные значения для границ тиража переменными):

  • Min – нижнее значение диапазона тиража

  • Max – верхнее значение диапазона тиража

При запуске такого запроса программа потребует ввести значения переменных запроса с параметрами:

Результат запроса:

2 запрос - Анализ распределения книг в натуральном и стоимостном выражении по разделам.

Поля:

  • Код раздела

  • Название раздела

  • количество книг по разделам

  • Средняя цена

  • Суммарный тираж

  • Общая стоимость книг

3 Запрос - Анализ распределения книг в натуральном и стоимостном выражении по типу переплета (Используются Таблицы “Книги” и “Переплёты”).

  • Код переплёта

  • Тип переплёта

  • Кол-во книг

  • Средняя цена

  • Средний тираж

  • Суммарный тираж

  • Общая стоимость книг

4 запрос - Анализ распределения книг в натуральном и стоимостном выражении по наиболее часто встречающимся форматам

  • Код формата

  • Название формата

  • Кол-во книг

  • Средняя цена

  • Суммарный тираж

  • Общая стоимость книг

5 Запрос – Запрос “Итоги” - Анализ распределения книг в натуральном и стоимостном выражении по издательствам (Поля: Код издательства, Название издательства, Количество книг, Средняя цена, Средний тираж, Средний объем, Средний и Общий приведенный объем в листах оттисках) .

6 запрос – Выбрать ведущие издательства .

Выбрать Ведущие издательства по критерию: число изданий >10.

Поля запроса:

  • Код изд-ва

  • Название изд-ва

  • Кол-во книг

  • Общий объём в прив. Листах

  • Средний прив.объём

  • Общий тираж

  • Средний тираж

  • Средняя цена

Примечания:

Число изданий=Сумма(книг)

Суммарный тираж = сумма(тираж)

Среднее кол-во страниц с учётом тиража = кол-во страниц*тираж/Сумма(тираж)

Средний тираж= сумма(тираж)/Число изданий

Общий прив. Объём= сумма (прив.объём*тираж)

Средний объём издания в прив.листах= Сумма(прив.объём*тираж)/сумма(тираж) =

=Общий прив.объём/Общий тираж

Общая стоимость изданий = сумма (цена*тираж)

Средняя стоимость изданий = сумма (цена*тираж)/сумма (тираж)

Средняя цена = сумма(цена)/кол-во изданий

(Средний тираж* средний объём) примерно равно (общий объём)

!!!!!!!!!!!!!!!!!!!!!!!!!!!

На языке SQL:

SELECT

Издательства.[Название издательства], Count(Книги.[Код книги]) AS [Кол-во книг],

INT(Sum(Книги.Тираж)*10)/10 AS [Общий Тираж],

Int(Sum([Форматы]![Коэффициент приведения]*[Книги]![Объем]*[Книги]![Тираж])*10)/10 AS Общий_объём,

Int(Sum([Форматы]![Коэффициент приведения]* [Книги]![объем]*[Книги]![Тираж])*10/SUM([Книги]![Тираж]))/10 AS Средний_объём, Int(Sum([Книги]![Цена]*[Книги]![Тираж])/Sum([Книги]![Тираж])*10)/10 AS СрСтоимость, Int(Avg(Книги.Тираж)*10)/10 AS [Средний тираж],

Avg(Книги.Цена) AS [Средняя цена],

INT(Sum([Книги]![Цена]*[Книги]![Тираж])*10)/10 AS Стоимость

FROM Форматы INNER JOIN (Издательства INNER JOIN Книги ON Издательства.[Код издательства] = Книги.[Код издательства]) ON Форматы.[Код формата] = Книги.[Код формата]

GROUP BY Издательства.[Название издательства]

ORDER BY Sum(Int([Книги]![Цена]*[Книги]![Тираж])) DESC;

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!