Python操作MySQL实战:从基础到事务处理
需积分: 10 179 浏览量
更新于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的基本技巧,为进一步的数据库开发打下坚实的基础。
339 浏览量
512 浏览量
3231 浏览量
274 浏览量
187 浏览量
332 浏览量

lan_ceshi
- 粉丝: 1
最新资源
- 官方更新版爱普生ME300打印机驱动程序支持多系统
- ExtJS 4.2日期时分秒控件拓展实现方法详解
- Blanchard美术馆登陆页面的JavaScript设计与实现
- CodeSandbox入门教程:创建原子状态管理应用
- 微调亮度与延时的LED感应灯设计文档
- 使用Python实现交换机路由器路由表监测技术
- java实现DOC2vec模型浅析
- 网页设计大师软件及模板库:最新分享与注册码
- CLUSEK-RT:探索光线追踪技术在游戏引擎中的应用
- Java实现捕鱼达人单机版游戏教程
- 构建URI实用工具:TypeScript中的格式化URL解决方案
- Activiti工作流引擎安装及示例演示
- 微生物检测试纸存放装置的设计与应用
- 2020年7月发布jdal64位版本:GDAL 3.0.4与MapServer 7.4.3整合
- CSS3创意自定义checkbox/radiobox演示教程
- 微服务架构下分布式事务与可靠消息系统的设计实践