Python操作MySQL数据库实战技巧
64 浏览量
更新于2024-08-31
收藏 87KB PDF 举报
"本文主要介绍Python操作MySQL数据库的9个实用示例,包括连接数据库、获取数据库版本、创建表及插入数据等基本操作。适用于希望通过Python进行MySQL数据库管理的开发者。"
在Python编程中,与MySQL数据库交互是常见的任务,这通常通过第三方库如`MySQLdb`或`pymysql`实现。`MySQLdb`是Python中广泛使用的MySQL驱动程序,它为Python提供了一个简单的API来操作MySQL数据库。
### 实例1:取得MySQL的版本
首先,确保已安装了适用于Python的MySQL模块。在Windows环境下,可以下载对应的32位或64位版本的`MySQL-python`安装包,例如`MySQL-python-1.2.3.win32-py2.7.exe`或`MySQL-python-1.2.3.win-amd64-py2.7.exe`,然后进行安装。
```python
# -*- coding: UTF-8 -*-
import MySQLdb as mdb
con = None
try:
# 连接MySQL的方法:connect('ip', 'user', 'password', 'dbname')
con = mdb.connect('localhost', 'root', 'root', 'test')
# 创建游标对象
cur = con.cursor()
# 执行SQL查询获取版本
cur.execute("SELECT VERSION()")
# 获取查询结果
data = cur.fetchone()
print("Database version: %s" % data)
finally:
if con:
# 关闭数据库连接
con.close()
```
在这个例子中,我们建立了到本地MySQL服务器的连接,并通过游标对象执行SQL查询,获取数据库的版本信息。
### 实例2:创建一个表并插入数据
接着,我们展示如何使用Python创建一个新的表并插入数据:
```python
import MySQLdb as mdb
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
# 获取游标
cur = con.cursor()
# 创建Writers表,Id为主键,自增,Name为VARCHAR类型
cur.execute("CREATE TABLE IF NOT EXISTS Writers (Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
# 插入5条数据
cur.execute("INSERT INTO Writers (Name) VALUES ('JackLondon')")
cur.execute("INSERT INTO Writers (Name) VALUES ('Ernest Hemingway')")
cur.execute("INSERT INTO Writers (Name) VALUES ('Agatha Christie')")
cur.execute("INSERT INTO Writers (Name) VALUES ('Herman Melville')")
cur.execute("INSERT INTO Writers (Name) VALUES ('William Shakespeare')")
```
这里,我们创建了一个名为`Writers`的表,包含两列:`Id`(主键,自动递增)和`Name`(最多存储25个字符的字符串)。随后,我们向表中插入了5位著名作家的名字。
这只是Python操作MySQL数据库的冰山一角。其他可能的操作还包括更新数据、删除记录、查询数据、事务处理、处理大数据量等。在实际开发中,还应考虑错误处理、性能优化以及使用预编译语句以防止SQL注入等安全问题。熟练掌握这些技能,能够使你在数据库管理方面更加得心应手。
2022-10-30 上传
2018-01-09 上传
2021-01-20 上传
2020-09-09 上传
2020-09-09 上传
2020-09-09 上传
2020-12-25 上传
2020-09-10 上传
2020-12-24 上传
weixin_38703295
- 粉丝: 10
- 资源: 935
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析