class Commodity:
def Dateopen(self):
'连接数据库'
import pymysql
conn=pymysql.connect(host='localhost',port=3306,user='root',password='123456789',db='supermarket')
cur=conn.cursor()
self.coon=conn
self.cur=cur
print('连接成功!')
def CommodityQuery(self):
'查询商品表的信息'
sql_query=self.cur.execute('select * from commodity' )
info = self.cur.fetchmany(sql_query)
for ii in info:
print (ii)
def CommodityInsertion(self,idd,name,price):
'往商品表插入新的记录'
sql_into="insert into commodity values(%s,%s,%s)"
self.cur.executemany(sql_into,[
(idd,name,price)])
def CommodityUpdate(self,id1,price1):
'根据商品ID更新商品价格'
sql_update='update commodity set 价格=%s where 商品编号=%s'
self.cur.executemany(sql_update,[
(price1,id1)])
def CommodityDel(self,id2):
'根据商品ID删除数据'
sql_del='delete from commodity where 商品编号=%s'
self.cur.executemany(sql_del,[
(id2)])
def Detaclose(self):
'提交事务,关闭数据库'
self.cur.close()
self.coon.commit()
self.coon.close()
print('数据库关闭!')
class VipVip:
def Dateopen(self):
'数据库连接'
import pymysql
conn=pymysql.connect(host='localhost',port=3306,user='root',password='123456789',db='supermarket')
cur=conn.cursor()
self.coon=conn
self.cur=cur
print('连接成功!')
def VipQuery(self):
'查询客户表的信息'
sql_query=self.cur.execute('select * from vip' )
info = self.cur.fetchmany(sql_query)
for ii in info:
print (ii)
def VipInsertion(self,vipid,vipname,vipclass,vipdiscount):
'#往客户表插入信息'
sql_into="insert into vip values(%s,%s,%s,%s)"
self.cur.executemany(sql_into,[
(vipid,vipname,vipclass,vipdiscount)])
def VipUpdate(self,vipid,classname,discount):
'根据会员ID修改等级名称和折扣标准'
sql_update='update vip set 等级名称=%s,折扣标准=%s where 会员编号=%s'
self.cur.executemany(sql_update,[
(classname,discount,vipid)])
def VipDel(self,vipid):
'根据会员ID删除会员的记录'
sql_del='delete from vip where 会员编号=%s'
self.cur.executemany(sql_del,[
(vipid)])
def Detaclose(self):
'提交事务,关闭数据库'
self.cur.close()
self.coon.commit()
self.coon.close()
print('数据库关闭!')
class Market:
def DateOpen(self):
'连接数据库'
import pymysql
conn=pymysql.connect(host='localhost',port=3306,user='root',password='123456789',db='supermarket')
cur=conn.cursor()
self.coon=conn
self.cur=cur
print('连接成功!')
def MarketQuery(self):
'查看销售记录表market的全部销售记录'
sql_query=self.cur.execute('select * from market' )
info = self.cur.fetchmany(sql_query)
for ii in info:
print (ii)
def Market(self,a,b,c,d,e,f,g):
'分别输入销售编号、会员编号、商品编号、数量、销售总价、会员编号、商品编号、数量插入销售数据'
sql_into="insert into market values\
(%s,%s,%s,%s,((select round(价格 * (select 折扣标准 \
from vip \
where 会员编号=%s),2)\
from commodity where 商品编号=%s)* %s))"
self.cur.executemany(sql_into,[
(a,b,c,d,e,f,g)])
def MarketDel(self,id1):
'根据销售编号删除销售数据'
sql_del='delete from market where 销售编号=%s'
self.cur.executemany(sql_del,[
(id1)])
def MarketCone(self):
'调用c_2存储过程,查看商品销售的总量和总价'
self.cur.callproc('c_2')
result=self.cur.fetchall()
print('{} {} {}'.format('商品名称','销售总量','销售总价'))
for row in result:
name=row[0]
num=row[1]
price=row[2]
print("{} {} {}".format(name,num,price))
self.coon.commit()
def GetThreadID(self,ID):
'按会员编号查询该会员各种商品的购买总数和总价'
sql_get=self.cur.execute('SELECT 商品名称,SUM(数量),SUM(销售总价) FROM commodity c,market m,vip v WHERE m.商品编号=c.商品编号 AND m.会员编号=v.会员编号 AND v.会员编号={d} GROUP BY c.商品名称'.format(d=ID))
info = self.cur.fetchmany(sql_get)
print('商品名称',' '*2,'销售总量',' '*2,'销售总价')
for ii in info:
print (ii)
def DetaClose(self):
'提交事务,关闭数据库'
self.cur.close()
self.coon.commit()
self.coon.close()
print('数据库关闭!')
def operation(type):
print('请输入需要操作的表名称,exit退出操作')
c=Commodity()
v=VipVip()
m=Market()
if type == 'Commodity':
print('第一步一定要先连接数据库,最后一步一定要关闭数据库提交事务,否则数据库中的数据没有得到相应的改变')
print('1:连接数据库;2:查询商品表的信息;3:往商品表插入新的记录;4:根据商品的ID更新;5:根据商品ID删除数据;6:提交事务,关闭数据库;change:更换操作表格;exit:退出程序!')
while True:
snumber=input('请输入您的操作序号:')
if snumber == 'change':
while True:
x=input('请输入你接下来要操作的表名称:')
if x == 'Commodity':
return operation(x)
elif x == 'VipVip':
return operation(x)
elif x == 'Market':
return operation(x)
else :
print('没有这张表,请重新输入!!!')
elif snumber =='exit':
return '感谢您的本次使用!!!'
n=int(snumber)
if n==1:
print('连接数据库……请等待~')
c.Dateopen()
elif n==2:
print('查询商品数据成功')
print('商品编号','商品名称','价格',sep='|')
c.CommodityQuery()
print('查询结束')
elif n==3:
print('插入商品数据!')
ID=input('请输入商品ID:')
name=input('请输入商品名称:')
price=input('请输入商品价格:')
c.CommodityInsertion(ID,name,price)
print('插入成功,如需继续插入数据请按3')
elif n==4:
print('更新产品的价格')
ID=input('请输入商品ID:')
newprice=input('请输入新商品的价格:')
c.CommodityUpdate(ID,newprice)
print('更新成功,查看数据请按2')
elif n==5:
print('删除商品数据!!!')
ID = input('请输入要删除商品的ID:')
c.CommodityDel(ID)
elif n==6:
print('提交事务,关闭数据库!')
c.Detaclose()
else:
print('操作无效,请仔细阅读操作手册!!!')
elif type=='VipVip':
print('第一步一定要先连接数据库,最后一步一定要关闭数据库提交事务,否则数据库中的数据没有得到相应的改变')
print('1:连接数据库;2:查询客户表的信息;3:往客户表插入新的记录;4:根据会员ID修改等级名称和折扣标准;5:根据会员ID删除数据;6:提交事务,关闭数据库;exit:退出程序!')
while True:
snumber=input('请输入您的操作序号:')
if snumber == 'exit':
return '感谢您的本次使用!!!'
elif snumber =='change':
while True:
x=input('请输入你接下来要操作的表名称:')
if x == 'Commodity':
return operation(x)
elif x == 'VipVip':
return operation(x)
elif x == 'Market':
return operation(x)
else :
print('没有这张表,请重新输入!!!')
n=int(snumber)
if n==1:
print('连接数据库……请等待~')
v.Dateopen()
elif n==2:
print('查询客户数据成功,数据如下:')
print('会员编号','会员名称','等级名称','折扣标准',sep='|')
v.VipQuery()
print('查询结束')
elif n==3:
print('插入客户数据!')
ID=input('请输入客户ID:')
name=input('请输入客户名称:')
vipclass=input('请输入客户会员等级#三大会员:银星会员,金星会员,玉星会员#')
discount=input('请输入会员折扣:#0.98银星,0.95金星,0.92玉星#')
v.VipInsertion(ID,name,vipclass,discount)
print('插入成功!!!继续插入数据按3')
elif n==4:
print('根据会员ID修改等级名称和折扣标准')
ID=input('请输入要修改的会员的ID')
vipclass=input('请输入要修改的会员等级名称:#三大会员:银星会员,金星会员,玉星会员#')
discount=input('请输入要修改的会员折扣:#0.98银星,0.95金星,0.92玉星#')
v.VipUpdate(vipclass,discount,ID)
print('客户数据修改成功!!!')
elif n==5:
print('根据会员ID删除会员的记录!!!')
ID = input('请输入需要删除的会员ID:')
v.VipDel(ID)
elif n == 6:
print('提交事务,关闭数据库!!!')
v.Detaclose()
else:
print('操作无效,请仔细阅读操作手册!!!')
elif type=='Market':
print('第一步一定要先连接数据库,最后一步一定要关闭数据库提交事务,否则数据库中的数据没有得到相应的改变')
print('1:连接数据库;2:查询销售表的信息;3:往销售表插入新的记录;4:根据销售表的销售编号删除销售数据;5:查询各种商品的销售总量和销售总价; 6:按会员编号查询该会员各种商品的购买总数和总价;7:提交事务,关闭数据库;exit:退出程序!')
while True:
snumber=input('请输入您的操作序号:')
if snumber == 'exit':
return '感谢您的本次使用!!!'
elif snumber == 'change':
while True:
x=input('请输入你接下来要操作的表名称:')
if x == 'Commodity':
return operation(x)
elif x == 'VipVip':
return operation(x)
elif x == 'Market':
return operation(x)
else :
print('没有这张表,请重新输入!!!')
n=int(snumber)
if n == 1:
print('连接数据库……请等待~')
print()
m.DateOpen()
elif n == 2:
print('查询销售表的销售记录:')
print('销售编号','会员编号','商品编号','数量','销售总价',sep='|')
m.MarketQuery()
print('查询完毕!!!')
elif n == 3:
print('往销售记录表插入新的数据:')
mid=input('请输入销售ID:')
vid=input('请输入会员ID:')
shopid=input('请输入商品ID:')
number=input('请输入销售数量')
m.Market(mid,vid,shopid,number,vid,shopid,number)
print('数据插入成功,如需继续插入请按3')
elif n == 4:
print('根据销售编号删除销售数据!!!!')
mid=input('请输入需要删除的销售记录表的编号:')
m.MarketDel(mid)
print('数据成功查询,查看按2,继续按4')
elif n == 5:
print('各种商品的销售总量和销售总价记录如下')
m.MarketCone()
print('数据查询成功!!!')
elif n == 6:
print('按会员编号查询该会员各种商品的购买总数和总价')
id = input('请输入要查询的会员编号')
m.GetThreadID(id)
print('数据查询完毕,继续查询请按6')
elif n == 7:
print('提交事务,关闭数据库!!')
m.DetaClose()
else:
print('操作无效,请仔细阅读操作手册!!!')
elif type == 'exit':
return '感谢您的本次使用!!!'
else:
print('没有这张表,请重新输入,退出请输入exit')