Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БД_Лаба_6

.docx
Скачиваний:
9
Добавлен:
25.12.2018
Размер:
154.34 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

ассистент

Иванова М.С

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №6

Связь Access с другими приложениями

по курсу: База данных

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4616

А.В.Павлов

подпись, дата

инициалы, фамилия

Цель работы: освоить методику переноса данных из Access в другие приложения.

Рисунок 1 – Исходная таблица

Листинг 1

import pyodbc

import matplotlib.pyplot as plt

from itertools import chain

fig = plt.figure()

ax1 = fig.add_axes([0,0,1,1])

ax1.grid(True, color = 'g', lw = 0.2)

def var1():

ax1.set_ylabel('Цена ', rotation=90, fontsize=15)

ax1.set_xlabel('Группа', fontsize=15)

db = pyodbc.connect('DSN=MyConnDB')

dbc = db.cursor()

dbc.execute('SELECT [Список препаратов].Группа,Avg([Список препаратов].[Закупочная цена]), Avg([Список препаратов].[Цена реализации]) FROM [Список препаратов] GROUP BY [Список препаратов].Группа;')

rows = [row for row in dbc.fetchall()]

item=list(chain(*rows))

name= item[0::3]

zak= item[1::3]

pr= item[2::3]

xs=range(len(name))

print('Весь массив')

print(item)

print('Имя')

print(name)

print('Цена опта')

print(zak)

print('Цена продажи')

print(pr)

new=[]

for i in range(len(pr)):

x=int(pr[i]-zak[i])

new.append(x)

print('Цена разницы')

print(new)

ax1.barh(xs,pr, height = 0.2, color = 'red',label = 'цена продажи')

ax1.barh(xs,zak, height = 0.2, color = 'black' ,label = 'цена опта')

ax1.barh(xs,new, height = 0.2, color = 'green',label = 'разница')

plt.yticks(xs, name)

plt.legend(loc='bottom right')

def var2():

ax1.set_ylabel('Цена ', rotation=90, fontsize=15)

ax1.set_xlabel('Название', fontsize=15)

db = pyodbc.connect('DSN=MyConnDB')

dbc = db.cursor()

dbc.execute('SELECT [Список препаратов].[Назначение препарата], Count([Список препаратов].[Назначение препарата]), Min([Список препаратов].[Цена реализации]) FROM [Список препаратов] GROUP BY [Список препаратов].[Назначение препарата];')

rows = [row for row in dbc.fetchall()]

item=list(chain(*rows))

name= item[0::3]

zak= item[1::3]

pr= item[2::3]

xs=range(len(name))

print('Полный массив')

print(item)

print('Назначение')

print(name)

print('Количество')

print(zak)

print('Минимальная цена продажи')

print(pr)

ax1.barh(xs,pr, color = 'red',label = 'цена продажи',

height =([(zak[z]/4) for z in range(len(name))]))

plt.yticks(xs, name)

var1()

#var2()

  1. Подается запрос на данные: группа, цена опта и цена продажи из таблицы Список препаратов. Все эти данные отображаются на графике и показывают зависимость цены от группы препарата

Рисунок 2 – Запрос 1

2) Подается запрос на данные: назначение, количество и минимальная цена продажи из таблицы Список препаратов. Данные изображаются на графике и показывают нам по каким назначениям минимальная цена товара, а также чем толще линия тем больше количества таких товаров\

Рисунок 3 – Минимальная цена товара по назначению

Вывод: В ходе Лабораторной работе я научился связывать таблицы MS ACCESS с питоном и обрабатывать данные.

Список использованных источников

              1. Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.

              2. Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.

Соседние файлы в предмете Базы данных