py mysql结合面向对象,实现类似超市导购机器的功能【1.初始化表数据】


py mysql结合面向对象,实现类似超市导购机器的功能(自我总结)

步骤1:

初始化表格和表格中的数据,应对不同电脑中使用时,没有数据库的情况【class do_tables】

共创建6张表,表结构如下:

# 商品信息表 goodsid,name,cate_id,brand_id,price,is_login
# 商品种类表 goods_catesid,name
# 商品品牌表 goods_brandsid,name
# 订单表 orders:id,order_date_time.customer_id
# 顾客表 customers:id,name,address,tel,password
# 订单详情表 order_detail:id,order_id,good_id,quantity
    def run(self):
        # 商品信息表goods:id,name,cate_id,brand_id,price
        sql = """create table if not exists goods(
            id int unsigned primary key auto_increment,
            name varchar(100) not null unique,
            cate_id int unsigned,
            brand_id int unsigned,
            price float(10,2) unsigned default 0.00,
            foreign key(cate_id) references goods_cates(id)
        );"""
        self.cs1.execute(sql)
        self.conn.commit()

        # 商品种类表goods_cates:id,name
        sql = """create table if not exists goods_cates(
            id int unsigned primary key auto_increment,
            name varchar(100) not null unique
        );"""
        self.cs1.execute(sql)
        self.conn.commit()

        # 商品品牌表goods_brands:id,name
        sql = """create table if not exists goods_brands(
            id int unsigned primary key auto_increment,
            name varchar(100) not null unique
        );"""
        self.cs1.execute(sql)
        self.conn.commit()

        # 顾客表customers表:id,name,address,tel,password
        sql = """create table if not exists customers(
            id int unsigned primary key auto_increment,
            name varchar(30) not null unique,
            address varchar(100),
            tel char(11),
            password varchar(30) not null,
            is_login bit default 0
        );"""
        self.cs1.execute(sql)
        self.conn.commit()

        # 订单表orders:id,order_date_time.customer_id
        sql = """create table if not exists orders(
            id int unsigned primary key auto_increment,
            order_date date default '2020-08-10',
            customer_id int unsigned,
            foreign key(customer_id) references customers(id)
        );"""
        self.cs1.execute(sql)
        self.conn.commit()


        # 订单详情表order_detail:id,order_id,good_id,quantity
        sql = """create table if not exists order_detail(
                    id int unsigned primary key auto_increment,
                    order_id int unsigned,
                    goods_id int unsigned,
                    quantity int unsigned not null default 0,
                    foreign key(order_id) references orders(id),
                    foreign key(goods_id) references goods(id)
                );"""
        self.cs1.execute(sql)
        self.conn.commit()

        # # 往各张表里插入数据
        sql = """insert into goods_cates(name) values('台式机'),('超极本'),('电视机'),('鼠标'),('笔记本'),('键盘'),('空调'),('手机'),('冰箱'),('硬盘');"""
        self.cs1.execute(sql)
        self.conn.commit()

        sql = """insert into goods_brands(name) values('海信'),('联想'),('美的'),('华硕'),('小米'),('索尼'),('苹果'),('TCL'),('戴尔');"""
        self.cs1.execute(sql)
        self.conn.commit()


        sql = """insert into goods values (10124,'Lenovo天逸510S 十代英特尔酷睿i3',1,2,2899),
        (10225,'戴尔(DELL)成就3681英特尔i5',1,9,2899),
        (10226,'戴尔(DELL)成就3681英特尔酷睿i5',1,2,3989),
        (25221,'小米全面屏电视 55英寸 E55X 4K超高清',3,5,1799),
        (25201,'海信(Hisense)H55E3A 55英寸 4K超清',3,1,1599),
        (25224,'小米全面屏电视 65英寸 E65A 4K超高清',3,5,2599),
        (25145,'TCL 75V2 75英寸液晶电视机 4K超高清',3,8,3799),
        (57754,'联想(Lenovo)小新Air14性能版轻薄本',4,2,5299),
        (5412,'华硕(ASUS) VivoBook15s 英特尔酷睿i5',4,4,4458),
        (2555,'联想ThinkBook 15(06CD)英特尔酷睿i5',4,2,5899),
        (25854,'Apple 2020新款 MacBook Pro 13.3',4,7,14499),
        (25855,'Apple MacBook Air 13.3 | Core i5 8G ',4,7,5699),
        (102,'小米10 6+125G',8,5,3599),
        (103,'红米Redmi 4A 2+16G',8,5,699),
        (15556,'小米红米Redmi 5A 3+64G',8,5,899),
        (4545,'硬盘 1T',10,6,399),
        (12452,'美的 省电超静音空调',6,3,1999);"""
        self.cs1.execute(sql)
        self.conn.commit()

        sql="""insert into customers values(default,'jack','上海虹桥',default,'123456',default),
        (default,'zhou','上海浦东机场','13622221111','123456',default),(default,'MiMic','杨家庄',default,'123456',default),
        (default,'lucy','赵巷',default,'123456',default),(default,'mecheal','苏州','18622563563','123456',default),
        (default,'jojo','上海',default,'123456',default),(default,'jian',default,default,'123456',default),
        (default,'COCO','上海虹桥2号',default,'123456',default),(default,'admin','上海','18621772763','123456',default);"""
        self.cs1.execute(sql)
        self.conn.commit()

        sql = """insert into orders values(12454,'2018-2-5',3),
            (1225,'2019-12-5',2),(12458,'2019-10-15',4),(114,'2017-2-5',5),(157,'2018-2-5',2),
            (1224,'2018-7-5',2),(244,'2017-8-13',1),(1455,'2019-2-5',1),(1245,'2018-9-9',4);"""
        self.cs1.execute(sql)
        self.conn.commit()

        sql = """insert into order_detail values(default,12454,102,3),
            (default,1225,4545,2),(default,12458,10124,4),(default,114,102,5),(default,157,103,2),
            (default,1224,103,4),(default,244,57754,1),(default,1455,25201,1),(default,1245,10226,4);"""
        self.cs1.execute(sql)
        self.conn.commit()