基本导入
使用SQLAlchemy前,需要导入相关的库:
from sqlalchemy import create_engine
import pymysql
import pandas as pd
连接数据库
SQLAlchemy通过创建引擎(engine)来连接数据库,不同数据库有不同的连接字符串格式。
连接MySQL数据库
MySQL连接字符串格式:'mysql+pymysql://用户名:密码@主机地址:端口号/数据库名'
conn ='mysql+pymysql://userid:pwd@host:port/dbname'
engine = create_engine(conn)
注意:即使密码中包含@符号也没关系,SQLAlchemy会正确解析连接字符串。
连接SQL Server数据库
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
读取数据表
连接数据库后,可以使用pandas的read_sql函数读取数据:
# SQL查询语句
sql = '''
select * from xxx
where user_id in ({0})
'''.format(str("user_id")) # 使用占位符替换变量
# 执行查询并获取数据
df = pd.read_sql(sql, engine)
print(df)
最佳实践总结
- 使用参数化查询避免SQL注入风险。
- 将数据库操作封装成函数,提高代码复用性。
- 处理数据库连接时注意异常捕获。
- 不需要数据库连接时及时关闭,释放资源。
- 对于敏感信息(如密码),避免硬编码在代码中。