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)
posted on 2024-11-05 20:22  文种玉  阅读(4)  评论(0编辑  收藏  举报