БД_Лаба_6
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА № 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()
-
Подается запрос на данные: группа, цена опта и цена продажи из таблицы Список препаратов. Все эти данные отображаются на графике и показывают зависимость цены от группы препарата
Рисунок 2 – Запрос 1
2) Подается запрос на данные: назначение, количество и минимальная цена продажи из таблицы Список препаратов. Данные изображаются на графике и показывают нам по каким назначениям минимальная цена товара, а также чем толще линия тем больше количества таких товаров\
Рисунок 3 – Минимальная цена товара по назначению
Вывод: В ходе Лабораторной работе я научился связывать таблицы MS ACCESS с питоном и обрабатывать данные.
Список использованных источников
-
Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.
-
Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.