mysql与python实践之商品查找

实践1:
基本操作:
‘’’
创建connection 获取cursor
执行查询 执行命令 获取数据 处理数据
关闭cursor 关闭connection
‘’’

import pymysql
# 1.连接mysql数据库
conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='root',db='mb',charset='utf8' )  #  传入一些参数  db  database缩写
# 2.获取cursor 游标对象   通过连接对象获取
cs = conn.cursor()
# 3. 通过游标对象执行sql
r = cs.execute('select * from goods;')  #有返回值,且为受影响记录的行数
print(r)
# 4.获取数据
print(cs.fetchone())   #获取第一条数据
print(cs.fetchone())    #  游标是会跟着动的  显示第2条数据
# 4.1 获取多条数据
print(cs.fetchmany(5))  #默认是返回1条
#是一个双重元组   可以获取多个
print(cs.fetchall())
print(cs.fetchone())
# 5.1 关闭游标

cs.close()
# 5.2 关闭连接
conn.close()

实践2:
已有goods表,在此基础上完成查询
“”"
使用面向对象完成商品查询
• 输入1:查询所有商品
• 输入2:所有商品种类
• 输入3:查询所有品牌
• 输入4:退出
• 输入5:插入数据
“”"

import pymysql

class MB(object):
    def __init__(self):
        self.conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='mb', charset='utf8')
        self.cs = self.conn.cursor()
    def run(self):
        while True:
            num = self.print_menu()  #静态方法也是对象的,所以加self
            if num == '1':
                self.show_all_goods()
            elif num == '2':
                self.show_all_cates()
            elif num == '3':
                self.show_all_brands()
            elif num == '4':
                break
            elif num == '5':
                self.insert_data()
            else:
                print('输入有误')

    #静态方法  可以省空间,在使用时不占内存,因为实例方法在定义的时候不需要实例空间
    @staticmethod
    def print_menu():
        print('-------mb shop-----')
        print('输入1:查询所有商品')
        print('输入2:所有商品种类')
        print('输入3:查询所有品牌')
        print('输入4:退出')
        print('输入5:插入数据')
        num = input('请输入 ')
        return num

    def show_all_goods(self):
        sql = 'select * from goods;'
        # self.cs.execute(sql)
        # res = self.cs.fetchall()
        # for data in res:
        #     print(data)
        #print(res)
        #return res
        self.execute_sql(sql)

    def show_all_cates(self):
        sql = 'select * from goods_cates;'
        self.execute_sql(sql)

    def show_all_brands(self):
        sql = 'select  brand_name from goods group by brand_name;'
        self.execute_sql(sql)

    def insert_data(self):
        sql = "insert into lcy (name) values ('mm');"
        self.cs.execute(sql)
        self.conn.commit()

    def execute_sql(self,sql):
        self.cs.execute(sql)
        res = self.cs.fetchall()
        for data in res:
            print(data)


    def __del__(self):
        self.conn.close()
def main():
    mb = MB()
    mb.run()
if __name__ == '__main__':
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值