Python操作MySQL实战:从基础到事务处理

需积分: 10 1 下载量 8 浏览量 更新于2024-09-10 收藏 277KB PDF 举报
"这篇教程详细介绍了如何使用Python操作MySQL数据库,包括建立连接、执行SQL语句、处理结果集、获取字段信息以及事务处理等。通过丰富的代码实例,适合Python初学者学习。" 在Python编程中,与MySQL数据库交互是一项常见的任务。Python提供了多种库来实现这一功能,如`MySQLdb`(本文示例中使用)和`pymysql`。以下是对文章内容的详细解释: 首先,为了使用`MySQLdb`库,你需要确保已经正确安装了这个库。在Windows环境下,你可以通过下载并安装MySQL-python的EXE安装文件来完成。 实例1展示了如何取得MySQL的版本信息: ```python import MySQLdb as mdb con = None try: con = mdb.connect('localhost', 'root', 'root', 'test') cur = con.cursor() cur.execute("SELECT VERSION()") data = cur.fetchone() print("Database version: %s" % data) finally: if con: con.close() ``` 这段代码创建了一个到MySQL服务器的连接,然后通过游标`cursor`执行SQL查询语句`SELECT VERSION()`,获取数据库的版本,并打印出来。 实例2演示了如何创建一个表并插入数据: ```python import MySQLdb as mdb import sys con = mdb.connect('localhost', 'root', 'root', 'test') with con: cur = con.cursor() # 创建 Writers 表 cur.execute(""" CREATE TABLE IF NOT EXISTS Writers ( Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(100) ) """) # 插入数据 cur.execute("INSERT INTO Writers (Name) VALUES ('John Doe')") ``` 在这个例子中,`CREATE TABLE`语句用于创建名为`Writers`的表,包含一个自动递增的主键`Id`和一个`Name`字段。接着,`INSERT INTO`语句用来向`Writers`表中插入一条记录。 除了上述的基本操作,Python还可以执行更复杂的SQL语句,如更新和删除数据,获取表的所有字段名,甚至将图片等二进制数据插入数据库。在处理结果集时,可以使用`fetchone()`、`fetchall()`或`fetchmany()`方法。事务处理也很关键,可以确保一系列操作的原子性。例如: ```python with con: cur.execute("START TRANSACTION") try: cur.execute("UPDATE Writers SET Name='Jane Doe' WHERE Id=1") con.commit() except: con.rollback() ``` 这里使用`START TRANSACTION`开启一个事务,然后尝试更新数据,如果发生错误,则通过`rollback`回滚事务,确保数据一致性。 Python与MySQL的结合提供了强大的数据处理能力,使得开发者可以方便地进行数据库操作。通过学习这些基础实例,初学者可以快速掌握Python操作MySQL的基本技巧,为进一步的数据库开发打下坚实的基础。