python 数据库操作
import pymysql.cursors class DBUtil(): def __init__(self): self.connect=None self.cursor=None def get_con(self): try: self.connect = pymysql.Connect( host='localhost', port=3306, user='root', passwd='123456', db='test', charset='utf8' ) except Exception as result: print(result) else: # 获取游标 self.cursor = self.connect.cursor() # print("打开数据库") def query_data(self): # 查询数据 # sql = "SELECT name,saving FROM trade WHERE account = '%s' " # data = ('13512345678',) # self.cursor.execute(sql % data) sql = "SELECT * FROM trade " self.cursor.execute(sql) # fetchone返回单个元组,即一条记录,没有结果返回None,fetchall返回多个元组,即多条记录,没有结果返回() #例如:fetchone返回(AA,123),fetchall返回((AA,123),(bb,111)(cc,222)) for row in self.cursor.fetchall(): print("ID:%d\t Name:%s\tAccount:%s\tSaving:%.2f\tExpend:%.2f\tIncome:%.2f" % row) print('共查找出', self.cursor.rowcount, '条数据') def insert_data(self): # 插入数据 sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )" data = ('w喔喔', '13512345001', 10000) self.cursor.execute(sql % data) self.connect.commit() print('成功插入', self.cursor.rowcount, '条数据') def update_data(self): # 修改数据 sql = "UPDATE trade SET saving = %.2f WHERE account = '%s' " data = (8888, '13512345001') self.cursor.execute(sql % data) self.connect.commit() print('成功修改', self.cursor.rowcount, '条数据') def delete_data(self): # 删除数据 sql = "DELETE FROM trade WHERE account = '%s' LIMIT %d" data = ('13512345001', 1) self.cursor.execute(sql % data) self.connect.commit() print('成功删除',self.cursor.rowcount, '条数据') def close_database(self): # 关闭连接 self.cursor.close() self.connect.close() print("关闭连接") def transaction_data(self): # 事务处理 sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = '18012345678' " sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = '18012345678' " sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = '18012345678' " try: self.cursor.execute(sql_2) # 支出增加1000 self.cursor.execute(sql_1) # 储蓄增加1000 self.cursor.execute(sql_3) # 收入增加2000 except Exception as e: self.connect.rollback() # 事务回滚 print('事务处理失败', e) else: self.connect.commit() # 事务提交 print('事务处理成功', self.cursor.rowcount) if __name__ == '__main__': db=DBUtil() db.get_con() db.insert_data() db.query_data() db.update_data() db.query_data() db.delete_data() db.query_data() db.close_database()