Python操作MySQL:从入门到实战 MySQL作为一个开源的关系型数据库管理系统,拥有着众多支持者和爱好者。而Python作为一门高级编程语言,也被广泛应用于数据处理和分析领域。因此,Python操作MySQL也成为了一个非常重要的技能。在本文中,我们将会从Python操作MySQL的基础入手,逐步深入学习,最终实现一个完整的案例。 一、准备工作 首先,我们需要安装Python和MySQL,以及对应的python包。可以通过以下命令安装: ``` pip install mysql-connector-python ``` 二、连接MySQL 成功安装mysql-connector-python之后,就可以连接MySQL了。连接MySQL的方法有两种,一种是通过TCP/IP连接,另一种是通过Unix socket连接。在本文中,我们只介绍第一种方法。 首先,需要在Python代码中引入mysql.connector包,并通过连接参数创建一个连接对象。连接参数包括host、user、password、database等。代码如下: ``` import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='mydatabase') ``` 三、查询数据 连接成功之后,我们可以执行SQL语句查询数据并将结果存储在Python变量中。代码如下: ``` import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='mydatabase') cursor = cnx.cursor() query = "SELECT * FROM mytable" cursor.execute(query) for (id, name, age) in cursor: print("{} - {} - {}".format(id, name, age)) cursor.close() cnx.close() ``` 在上述代码中,我们创建了一个游标对象,执行了一个查询语句,并通过for循环遍历了查询结果。查询结果的每一条记录都是包含id、name和age三个字段的元组。 四、插入数据 除了查询数据,我们还可以向MySQL中插入数据。插入数据的方法也非常简单,只需要使用INSERT INTO语句即可。代码如下: ``` import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='mydatabase') cursor = cnx.cursor() insert = "INSERT INTO mytable (name, age) VALUES (%s, %s)" values = ("John", 35) cursor.execute(insert, values) cnx.commit() cursor.close() cnx.close() ``` 在上述代码中,我们使用了占位符%s来替代具体的值。values变量是一个元组,用来存储具体的值。 五、更新数据 如果需要更新MySQL中的数据,只需要使用UPDATE语句即可。代码如下: ``` import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='mydatabase') cursor = cnx.cursor() update = "UPDATE mytable SET age = %s WHERE name = %s" values = (40, "John") cursor.execute(update, values) cnx.commit() cursor.close() cnx.close() ``` 在上述代码中,我们使用了UPDATE语句来更新mytable表中name为John的记录的age字段。 六、删除数据 最后,如果需要删除MySQL中的数据,只需要使用DELETE语句即可。代码如下: ``` import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='mydatabase') cursor = cnx.cursor() delete = "DELETE FROM mytable WHERE name = %s" values = ("John",) cursor.execute(delete, values) cnx.commit() cursor.close() cnx.close() ``` 在上述代码中,我们使用了DELETE语句来删除mytable表中name为John的记录。 七、实战案例 在学习了基本的MySQL操作之后,我们来看一个实战案例。假设我们要从一个包含学生信息的表格中查询年龄大于20岁的学生,并将结果输出到一个文件中。代码如下: ``` import mysql.connector cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='mydatabase') cursor = cnx.cursor() query = "SELECT name FROM students WHERE age > %s" values = (20,) cursor.execute(query, values) with open('output.txt', 'w') as f: for (name,) in cursor: f.write("{}\n".format(name)) cursor.close() cnx.close() ``` 在上述代码中,我们使用了with语句来打开一个文件,使用文件对象f来写入查询结果。值得注意的是,我们使用了name的元组而不是(id, name)的元组来表示查询结果,这是因为我们只需要输出学生的姓名而不需要输出学生的id。 总结 本文从Python操作MySQL的基础入手,介绍了连接MySQL、查询数据、插入数据、更新数据和删除数据的方法,并给出了一个实战案例。掌握了这些基础知识之后,读者可以进一步深入学习,实现更为复杂的MySQL操作。