需要?jiǎng)?chuàng)建的表的結(jié)構(gòu)
# 表1:班級(jí)表 表2:學(xué)生表 表3:老師表 表4:老師班級(jí)關(guān)系表
id name id sname cid(FK) id tname id tid(FK) cid(FK)
1 初三一班 1 小明 1 1 數(shù)學(xué)老師 1 1 1
2 初三二班 2 語(yǔ)文老師 2 1 2
3 2 2
使用 Navicat Premium 創(chuàng)建數(shù)據(jù)庫(kù)classProject
。創(chuàng)建class表
、student表
、teacher表
、tearcher2class表
。創(chuàng)建相應(yīng)表字段名。
- class表:
-
id 為自增 主鍵
class表 id 為自增 主鍵
-
id 為自增 主鍵
- student表:
- id 為自增 主鍵
-
cid 和class表id關(guān)聯(lián)
student表
- teacher表:
-
id 為自增 主鍵
teacher表
-
id 為自增 主鍵
- tearcher2class表:
- id 為自增 主鍵
- cid 和class表id關(guān)聯(lián)
-
tid 和tearcher表id關(guān)聯(lián)
image.png
封裝pymsql
方便后續(xù)操作
class SQLHelper(object):
def __init__(self):
self.connect()
#連接
def connect(self):
self.conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='classProject',
charset='utf8')
self.cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
#獲取列表
def get_list(self,sql,args=[]):
self.cursor.execute(sql, args)
result = self.cursor.fetchall()
return result
#獲取一條
def get_one(self,sql,args=[]):
self.cursor.execute(sql, args)
result = self.cursor.fetchone()
return result
#修改,刪除
def modify(self,sql,args=[]):
self.cursor.execute(sql, args)
self.conn.commit()
#增加并返回新增的id
def create(self,sql,args=[]):
self.cursor.execute(sql, args)
self.conn.commit()
return self.cursor.lastrowid
#批量操作
def multiple_modify(self,sql,args=[]):
# self.cursor.executemany('insert into tearch2class(tid, cid) VALUES (%s,%s)',[(1,2),(2,3),(3,5)])
self.cursor.executemany(sql,args)
self.conn.commit()
#關(guān)閉
def close(self):
self.cursor.close()
self.conn.close()
SQLHelper使用方法
obj = SQLHelper()
# 查詢?nèi)堪嗉?jí)列表
class_list = obj.get_list('select id,name from class')
# 新增一條班級(jí)數(shù)據(jù)
obj. modify("insert into class(name) values(%s)", ["初三一班", ])
# 根據(jù)id獲取班級(jí)
class = obj.get_one("select id,name from class where id = %s",[ id,])
# 根據(jù)id修改班級(jí)
obj.modify("update class set name = %s where id = %s", [newName, id, ])
# 新增班級(jí)并返回該新增班級(jí)的id
class_id = obj. create("insert into class(name) values(%s)", ["初三一班", ])
# 刪除班級(jí)
obj.modify("delete from class where tid = %s", id)
obj.close()