无论你是数据分析师、后端开发者,还是机器学习工程师,掌握 Python 操作 MySQL 的方法都至关重要
本文将通过实例,全面而详细地介绍如何使用 Python 连接 MySQL 数据库、执行 SQL语句、管理数据等,帮助你迅速上手并高效应用
一、准备工作 在开始之前,请确保你的系统上已经安装了以下软件: 1.Python:建议版本为 Python 3.x,可通过 Python官网下载安装
2.MySQL:可以从 MySQL 官方网站下载并安装 MySQL Server
3.MySQL Connector/Python:这是 MySQL官方提供的 Python 驱动,用于连接和操作 MySQL 数据库
可以通过 pip 安装: bash pip install mysql-connector-python 二、连接 MySQL 数据库 首先,我们需要创建一个到 MySQL 数据库的连接
这通常涉及提供数据库的主机名、端口、用户名、密码以及要连接的数据库名称
python import mysql.connector 配置数据库连接信息 config ={ user: your_username, password: your_password, host: localhost,或你的数据库服务器地址 port:3306, MySQL 默认端口 database: your_database } 建立连接 cnx = mysql.connector.connect(config) 验证连接是否成功 if cnx.is_connected(): print(连接成功!) else: print(连接失败!) 使用完毕后关闭连接 cnx.close() 三、创建游标对象 在 MySQL Connector/Python 中,游标对象用于执行 SQL 查询并获取结果
游标对象提供了多种方法来处理 SQL 命令和结果集
python 重新建立连接(为了演示,这里再次建立连接) cnx = mysql.connector.connect(config) 创建游标对象 cursor = cnx.cursor() 使用完毕后关闭游标和连接 cursor.close() cnx.close() 四、执行 SQL 查询 4.1 执行 SELECT 查询 执行 SELECT 查询并获取结果集是数据库操作中最常见的任务之一
以下是一个简单的示例: python 重新建立连接和创建游标 cnx = mysql.connector.connect(config) cursor = cnx.cursor() 定义 SQL 查询语句 query = SELECTFROM your_table 执行查询 cursor.execute(query) 获取所有结果行 rows = cursor.fetchall() 遍历并打印结果 for row in rows: print(row) 关闭游标和连接 cursor.close() cnx.close() 4.2 使用参数化查询 参数化查询不仅提高了代码的可读性,更重要的是可以防止 SQL注入攻击
python 重新建立连接和创建游标 cnx = mysql.connector.connect(config) cursor = cnx.cursor() 定义带参数的 SQL 查询语句 query = SELECT - FROM your_table WHERE column_name = %s parameter =(value,) 注意这是一个元组,即使只有一个参数 执行查询 cursor.execute(query, parameter) 获取所有结果行 rows = cursor.fetchall() 遍历并打印结果 for row in rows: print(row) 关闭游标和连接 cursor.close() cnx.close() 4.3插入数据 插入数据通常使用 INSERT INTO语句
在执行插入操作后,可以使用`cursor.lastrowid` 属性获取新插入行的 ID(如果数据库表有自增主键)
python 重新建立连接和创建游标 cnx = mysql.connector.connect(config) cursor = cnx.cursor() 定义 SQL插入语句 insert_query = INSERT INTO your_table(column1, column2) VALUES(%s, %s) values =(value1, value2) 执行插入操作 cursor.execute(insert_query, values) 提交事务 cnx.commit() 获取新插入行的 ID new_id = cursor.lastrowid print(f新插入行的 ID 为:{new_id}) 关闭游标和连接 cursor.close() cnx.close() 4.4 更新数据 更新数据使用 UPDATE语句
同样地,执行更新操作后需要提交事务
python 重新建立连接和创建游标 cnx = mysql.connector.connect(config) cursor = cnx.cursor() 定义 SQL 更新语句 update_query = UPDATE your_table SET column1 = %s WHERE column2 = %s values =(new_value1, condition_value) 执行更新操作 cursor.execute(update_query, values) 提交事务 cnx.commit() 关闭游标和连接 cursor.close() cnx.close() 4.5 删除数据 删除数据使用 DELETE语句
同样需要提交事务
python 重新建立连接和创建游标 cnx = mysql.connector.connect(config) cursor = cnx.cursor() 定义 SQL 删除语句 delete_query = DELETE FROM your_table WHERE column_name = %s parameter =(value,) 执行删除操作 cursor.execute(delete_query, parameter) 提交事务 cnx.commit() 关闭游标和连接 cursor.close() cnx.close() 五、处理异常 在实际应用中,处理数据库操作可能遇到的异常是非常重要的
MySQL Connector/Python提供了异常处理机制,允许我们捕获并处理特定的数据库错误
python try: 建立连接和创建游标 cnx = mysql.connector.connect(config)