Pandas 与 MySQL 数据库的连接
最编程
2024-06-28 14:03:32
...
pandas是一个强大的Python工具包,能够快速帮助我们做很多数据处理。但是在利用pandas连接数据库时,也会遇到很多问题,在此我总结了一个相对较为简单的连接范式,供大家参考学习。
先上代码:
import pandas as pd
# 数据库参数
MYSQL_USER = 'root'
MYSQL_PASS = '****' # 你的密码
MYSQL_HOST = "localhost" # 你的host
MYSQL_PORT = 3306
MYSQL_CHARSET = 'utf8mb4' # 数据库编码格式
# 数据库名称
MYSQL_DATABASE = "system"
import pymysql
from sqlalchemy import create_engine
# url
MYSQL_DATABASE_URL = fr"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASS}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset={MYSQL_CHARSET}"
# 创建引擎
engine = create_engine(MYSQL_DATABASE_URL)
# 数据库调用函数
def access_db(sql, data=None, is_many=False):
'''
:param sql: sql执行语句
:param data: 数据,如果没有数据则执行sql代码
:param is_many: 是否为多条数据
:return: 查询数据
'''
conn = pymysql.connect(host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER,
password=MYSQL_PASS, db=MYSQL_DATABASE, charset=MYSQL_CHARSET)
cur = conn.cursor()
if is_many:
try:
cur.executemany(sql, data)
conn.commit()
except Exception as e:
print(e)
conn.rollback()
elif data:
try:
cur.execute(sql, data)
conn.commit()
except Exception as e:
print(e)
conn.rollback()
else:
cur.execute(sql)
exe_data = cur.fetchall()
conn.commit()
return exe_data
cur.close()
conn.close()
# 查询数据
sql = "select * from user"
df_user = pd.read_sql(sql=sql, con=engine)
print(df_user)
上述代码中用到的函数,在查询语句,插入语句(一次可插入一条或多条)等方面都可以直接调用,但需要确保sql语句的正确性,注意更改数据库参数为你自己需要连接的数据库,sql建议在代码调用前最好直接在数据库进行过查询并能够获取到正确的数据再放入代码层,避免因为一些基本语法问题导致问题定位浪费时间和精力。
推荐阅读
-
Oracle 数据库技术分享] BLOB 和 CLOB 的选择与应用
-
数据库连接池:从 JDBC 到高效管理的演变
-
Java 项目实践 II 基于 Java + Spring Boot + MySQL 的匹配网站设计与实施(源代码 + 数据库 + 文档)
-
MySQL 数据库从开始到结束 第 2 讲 启动 停止 连接-4 可能出现的问题:
-
基于 SSM+Vue+MySQL 的健身房管理系统 - 数据库表展示
-
深入了解 Java 中的 ThreadLocal 机制,了解其工作原理、优缺点分析、数据库连接管理的应用、使用注意事项
-
个人健康系统|个人健康数据管理系统|基于applet+java的个人健康数据管理系统设计与实现(源代码+数据库+文档)
-
MySQL、PostgreSQL、ClickHouse、MongoDB 的区别,包含 5 个数据库的项目的适用场景 - I. 常用数据库概述
-
MySQL 数据库的性能优化方法和途径有哪些?
-
原创] java+swing+mysql小说管理系统的设计与实现