1. 程式人生 > >MySQL與python的互動!Python就得這樣學!

MySQL與python的互動!Python就得這樣學!

create database jing_dong charset=utf-8;

use jing_dong;

 

MySQL與python的互動!Python就得這樣學!

 

 

建立商品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

-> );

 

MySQL與python的互動!Python就得這樣學!

 

 

select * from goods;

 

MySQL與python的互動!Python就得這樣學!

 

 

建立商品分類表

create table if not exists goods_cates(

id int unsigned primary key auto_increment,

name varchar(40) not null

);

 

MySQL與python的互動!Python就得這樣學!

 

 

insert into goods_cates(name) select cate_name from goods group by cate_name;

 

MySQL與python的互動!Python就得這樣學!

 

 

 

MySQL與python的互動!Python就得這樣學!

 

 

修改外來鍵,新增外來鍵約束

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 提交資料庫的修改操作

輸出結果

 

MySQL與python的互動!Python就得這樣學!

 

 

MySQL與python的互動!Python就得這樣學!

 

 

MySQL與python的互動!Python就得這樣學!

 

 

MySQL與python的互動!Python就得這樣學!

 

 

MySQL與python的互動!Python就得這樣學!

 

 

進群:960410445 即可獲取蘇十套PDF!