import pymysql
import pandas as pd
def connect_database(query): # 定义一个函数,名为connect_database,参数为query,即要执行的SQL查询语句
conn = pymysql.connect( # 使用pymysql.connect方法建立数据库连接
host='localhost', # 数据库主机地址,这里是本地主机
port=3306, # 数据库服务端口,默认为3306
user='root', # 登录数据库的用户名
password='1fcSCyYOFRDxKwd', # 登录数据库的密码
database='school', # 要连接的数据库名称
charset='utf8mb4' # 数据库字符集,这里使用utf8mb4支持更多字符编码
)
cursor = conn.cursor() # 创建一个游标对象cursor,用于执行SQL命令
cursor.execute(query) # 执行传入的SQL查询语句
data = cursor.fetchall() # 获取所有查询结果,并存储在变量data中
cols = cursor.description # 获取查询结果的列信息,包括列名等,存储在变量cols中
conn.commit() # 提交事务,确保对数据库的更改被保存下来(对于查询操作而言,这一步不是必须的)
conn.close() # 关闭数据库连接,释放资源
col = [] # 初始化一个空列表,用于存放列名
for i in cols: # 遍历从数据库获取的列信息
col.append(i[0]) # 将每个列的信息中的第一个元素(列名)添加到col列表中
data = list(map(list, data)) # 将查询结果转换为列表的列表形式,方便后续处理
data = pd.DataFrame(data, columns=col) # 查询结果转换成pandas DataFrame格式,col列表作为列名
return data # 返回查询结果
# 程序的入口
if __name__ == "__main__":
data = connect_database("select * from student")
print(data)