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')
類和對象實戰,利用python往MySQL數據庫數據表進行一系列的增刪查改
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.