Python驱动MySQL数据库操作示例

版权申诉
0 下载量 29 浏览量 更新于2024-08-23 收藏 118KB PDF 举报
"该资源是关于使用Python的MySQLdb库连接和操作MySQL数据库的代码案例。文件名为2021_w_.2.python驱动mysql(MySQLdb) 代码案例.pdf,内容涉及读取数据库配置、遍历文件路径、执行SQL语句以及创建数据表等操作。" 在Python中,MySQLdb库是用于连接和操作MySQL数据库的一个流行模块。以下将详细解释文件中涉及的知识点: 1. **MySQLdb库**:MySQLdb是Python的一个适配器,它实现了Python数据库API规范(PEP 249),使得Python程序员能够方便地与MySQL数据库进行交互。通过这个库,我们可以创建连接,执行SQL语句,处理结果等。 2. **数据库配置读取**:在代码中,`read_mysql_conf()`函数用于读取数据库的配置信息。这里使用了pandas的`read_excel()`函数从Excel文件中读取数据,并将其转化为字典类型,便于后续使用。例如,配置可能包括数据库名(db_name)、用户名(user)、密码(passwd)、主机名(host)和端口号(port)。 3. **遍历文件路径**:`group_by_pathName()`函数用于遍历指定目录下的所有文件。`os.walk()`函数在此过程中起关键作用,它会递归地遍历目录树,返回每个目录下所有的子目录和文件名。`os.path.join()`则用于拼接完整的文件路径。 4. **执行SQL语句**:`cur_sql(sql_str)`函数是用于执行SQL语句的。首先,它创建一个游标对象`cur`,然后通过调用游标的`execute()`方法来执行SQL。执行成功后,使用`commit()`方法提交事务,确保数据更改被保存。`fetchall()`方法用于获取查询的所有结果。 5. **创建数据表**:在示例中,`pre_start_id_table()`函数展示了如何创建数据表。它首先读取Excel数据,然后定义了一系列SQL语句,如`DROP TABLE IF EXISTS`用于删除已存在的表,`CREATE TABLE`用于创建新的表结构。这表明,代码还涉及对数据库结构的操作。 6. **数据类型转换**:在读取Excel文件时,使用了`dtype="str"`参数,确保所有数据都被读取为字符串类型。而在创建数据库表时,列的数据类型如`varchar(20)`和`varchar(255)`分别表示可变长度的字符数据,长度限制分别为20和255个字符。 这些代码案例提供了一个基础的框架,演示了如何使用Python和MySQLdb库进行数据库操作,包括连接、执行SQL和管理数据表。开发者可以依据此框架,根据自己的需求修改和扩展,实现更复杂的数据处理任务。

import MySQLdb import tkinter as tk import subprocess # 创建主窗口 window = tk.Tk() window.title("连接数据库") # 设计窗口大小 width = 400 height = 280 window.geometry(f"{width}x{height}") # 设置窗口位置,使其居中显示 x = int((window.winfo_screenwidth() - width) / 2) y = int((window.winfo_screenheight() - height) / 2) window.geometry(f"+{x}+{y}") # 创建标签和输入框 host_label = tk.Label(window, text="主机名:") host_label.pack() host_entry = tk.Entry(window) host_entry.pack() username_label = tk.Label(window, text="用户名:") username_label.pack() username_entry = tk.Entry(window) username_entry.pack() password_label = tk.Label(window, text="密码:") password_label.pack() # 创建输入框,并将 show 参数设置为 "*" password_entry = tk.Entry(window, show="*") password_entry.pack() database_label = tk.Label(window, text="数据库:") database_label.pack() database_entry = tk.Entry(window) database_entry.pack() # 创建按钮和回调函数 def connect(): host = host_entry.get() username = username_entry.get() password = password_entry.get() database = database_entry.get() # 尝试连接 try: cnx = MySQLdb.connect(host=host, user=username, password=password, database=database) print("连接成功!") window.destroy() subprocess.run(["python", "ces2.py"]) except MySQLdb.Error as err: print(f"连接失败: {err}") window.destroy() subprocess.run(["python", "mysql_err.py"]) connect_button = tk.Button(window, text="连接", height=3, width=10, command=connect) connect_button.pack() # 运行主循环 window.mainloop() 插入路径为D:\python--\python word\py_mysql\背景图.png的背景图

2023-05-31 上传
2023-06-03 上传