MySQL與python的互動!Python就得這樣學!
create database jing_dong charset=utf-8;
use jing_dong;
建立商品goods的資料表;
mysql> create table goods(
-> id int unsigned primary key auto_increment not null,
-> name varchar(150) not null,
-> cate_name varchar(40) not null,
-> brand_name varchar(40) not null,
-> price decimal(10,3) not null default 0,
-> is_show bit not null default 1,
-> is_saleoff bit not null default 0
-> );
select * from goods;
建立商品分類表
create table if not exists goods_cates(
id int unsigned primary key auto_increment,
name varchar(40) not null
);
insert into goods_cates(name) select cate_name from goods group by cate_name;
修改外來鍵,新增外來鍵約束
alter table goods add foreign key (cate_id) references goods_brands(id);
使用Python DB API訪問資料庫流程
開始
建立connection
獲取cursor
執行查詢等命令
關閉cursor
關閉connection
結束
# -*- coding:utf-8 -*- # Author : XuQiao from pymysql import * class JD(object): def __init__(self): # 建立connection連線 self.conn = connect(host='localhost',port=3306,user='root',password='123456',database='jing_dong',charset='utf8') # 獲取cursor物件 self.cursor = self.conn.cursor() def __del__(self): # 關閉cursor物件 self.cursor.close() self.conn.close() def execute_sql(self,sql): self.cursor.execute(sql) for temp in self.cursor.fetchall(): print(temp) def show_all_items(self): # 顯示所有的商品 sql = "select * from goods;" self.execute_sql(sql) def show_cates(self): sql = "select name from goods_cates;" self.execute_sql(sql) def show_brands(self): sql = "select name from goods_brands;" self.execute_sql(sql) def add_brands(self): item_name = input("請輸入新商品分類的名稱:") sql = "insert into goods_brands(name) values('%s')" % item_name self.cursor.execute(sql) self.conn.commit() def get_info_by_name(self): find_name = input("請輸入要查詢商品的名字:") # sql = "select * from goods where name='%s';" % find_name # print("----------->%s<----------"%sql) # self.execute_sql(sql) sql = "select * from goods where name=%s" # 防止sql注入 self.cursor.execute(sql,[find_name]) print(self.cursor.fetchall()) @staticmethod def print_menu(): print("------京東------") print("1:所有的商品") print("2:所有的商品分類") print("3:所有的是商品品牌分類") print("4:新增一個商品分類") print("5:根據名字查詢一個商品") return input("請輸入功能對應的序號:") def run(self): while True: num = self.print_menu() if num=="1": # 查詢所有商品 self.show_all_items() elif num=="2": # 查詢分類 self.show_cates() elif num=="3": # 查詢品牌分類 self.show_brands() elif num=="4": # 新增資料 self.add_brands() elif num=="5": # 根據名字查詢商品 self.get_info_by_name() else: print("輸入有誤,重新輸入...") def main(): # 1、建立一個京東商城物件 jd = JD() # 2、呼叫這個物件的run方法,讓其執行 jd.run() if __name__ == "__main__": main() # conn.commit() commit 提交資料庫的修改操作
輸出結果
進群:960410445 即可獲取蘇十套PDF!