python对MySQL进行曾删改查
通过 python 对MySQL数据库进行,查询、修改、插入、删除数据。
我们可以把这些方法封装成一个工具类,这样需要用到对数据库增删改查,就直接调用工具类里面方法进行操作。
这里用到pymysql 库;python利用这个库对MySQL做操作。前提是安装该库:pip install pymysql
#封装成为一个工具类 import pymysql class Dd_mysql():#定义一个连接数据库的类 def __init__(self,host,user,password,db,port):#在构造函数里面传入连接数据库需要的参数 ''' 连接数据库所需要的参数 ''' self.host = host self.user = user self.password = password self.db = db self.port = port def connect_db(self): #创建一个数据库连接 try: db=pymysql.connect(host=self.host,user=self.user,password=self.password,db=self.db,port=self.port) return db except Exception as e : print('连接失败',e) def select_one(self,sql): #封装查询第一行的方法 try: db=self.connect_db() #拿到一个连接数据库的对象 cursor=db.cursor() #创建一个游标对象(作用:执行sql语句,获取返回值) cursor.execute(sql)#通过游标执行sql语句;通过游标对象调用execute方法执行SQL语句、执行后的结果被保存到了cursor对象中 db.commit() # 再往数据库提交数据或者执行的请求 one=cursor.fetchone() #通过游标返回表中的一行数据;fetchall方法会返回所有数据 return one except Exception as e: print(e) db.rollback() #数据库的回滚、把数据库代码的操作返回到上一次操作的状态 def delete_one(self,del_sql,sel_sql): #封装一个删除表中特定数据并且返回表中剩余数据的工具方法 try: db=self.connect_db() cursor=db.cursor() cursor.execute(del_sql) #删除 cursor.execute(sel_sql) #查询删除后表中剩余的数据 db.commit() all=cursor.fetchall()#查询多条语句 return all except Exception as e: print(e) db.rollback() #插入一条数据到数据库对应的表 def insert_noe(self,ins_sql): try: db=self.connect_db() cursor=db.cursor() cursor.execute(ins_sql) # cursor.execute(sel_sql) db.commit() all=cursor.fetchone() # cursor.close() return all except Exception as e: print(e) db.rollback() def select_all(self,sql): #封装查询所有数据的方法 try: db=self.connect_db() cursor=db.cursor() cursor.execute(sql) db.commit() all=cursor.fetchall() return all except Exception as e: print(e) db.rollback() if __name__ == '__main__': #实例化Dd_mysql类并传入参数 db_mysql=Dd_mysql('192.168.31.103','root','123456','finance',3306) #通过实例对象调用select_one 查询方法 # restul=db_mysql.select_one('select * from bei5;') #调用删除方法,删除后在调用查询语句,查询删除后的结果 # restul=db_mysql.delete_one("delete from beifen where id=2;","select * from beifen;") #调用insert_noe 方法往表里插入数据 db_mysql.insert_noe("insert into score3(s_id,score)values(2,334);") restul=db_mysql.insert_noe("select * from score3;") print(restul)