Python在数据处理和分析领域的应用越来越广泛,而MySQL数据库是一个常用的关系型数据库管理系统。在本文中,我们将介绍如何使用Python连接MySQL数据库,并进行查询、更新、新增、批量插入等操作。
1. 准备工作
在开始之前,我们需要安装pymysql
库,这是一个用于操作MySQL数据库的Python库。你可以使用以下命令进行安装:
pip install pymysql
2. 连接MySQL数据库
import pymysql
MYSQL_HOST = '' # 数据库地址
MYSQL_PORT = '' # 数据库端口
MYSQL_USER = '' # 数据库用户名
MYSQL_PASSWD = '' # 数据库密码
MYSQL_DB = '' # 数据库名称
MYSQL_CHARSET = '' # 数据库字符集
class MysqlDb:
def __init__(self):
self.conn = pymysql.connect(
host=MYSQL_HOST,
port=MYSQL_PORT,
user=MYSQL_USER,
passwd=MYSQL_PASSWD,
db=MYSQL_DB,
charset=MYSQL_CHARSET,
)
self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
def __del__(self):
# 关闭游标
self.cur.close()
# 关闭数据库连接
self.conn.close()
3. 查询数据库
def select_db(self, sql):
"""
查询
:param sql: sql语句
:return: 查询结果
"""
# 检查连接是否断开,如果断开就进行重连
self.conn.ping(reconnect=True)
# 使用execute() 执行sql
self.cur.execute(sql)
# 使用 fetchall()获取查询结果
data = self.cur.fetchall()
return data
4. 更新、新增、删除操作
def execute_db(self, sql):
"""
更新、新增、删除
:param sql: sql语句
:return: 操作结果
"""
try:
# 检查连接是否断开,如果断开就进行重连
self.conn.ping(reconnect=True)
# 使用execute() 执行sql
self.cur.execute(sql)
# 提交事务
self.conn.commit()
return {'code': 200, 'data': '', 'msg': '操作成功'}
except Exception as e:
print('操作错误:{}'.format(e))
# 回滚所有更改
self.conn.rollback()
return {'code': 203, 'data': '', 'msg': '操作失败'}
5. 批量插入数据
def insert_many_db(self, db_name: str, data_title: list, data_list: list):
"""
批量插入数据
:param db_name: 数据库名称
:param data_title: 数据库表头信息,格式为[a, b, c, d, e]
:param data_list: 插入信息,格式为[[第一条],[第二条],[第三条],[第四条]]
:return: 插入结果
"""
self.conn.ping(reconnect=True)
try:
# 处理通配符占位
ls = ','.join(['%s' for _ in range(len(data_title))])
# 字段信息列表转str
data_title = ','.join([item for item in data_title])
self.conn.ping(reconnect=True)
self.cur.executemany(f"insert into {db_name} ({data_title}) values ({ls})", data_list)
self.conn.commit()
return {'code': 200, 'data': '', 'msg': '插入成功'}
except Exception as ex:
print('操作错误:{}'.format(ex))
self.conn.rollback()
return {'code': 203, 'data': '', 'msg': '插入失败'}
需要提供数据库名称、数据表头信息和插入的数据列表。