Python操作MySQL数据库实战指南
5星 · 超过95%的资源 需积分: 10 115 浏览量
更新于2023-03-16
收藏 22KB DOCX 举报
"这个Python脚本展示了如何与MySQL数据库进行基本操作,包括连接数据库、执行SQL语句(创建数据库、创建表、插入数据以及查询数据)以及关闭连接。"
在Python编程中,与MySQL数据库进行交互通常需要使用第三方库,如`MySQLdb`。以下是对提供的Python脚本中涉及的关键知识点的详细解释:
1. 导入MySQLdb模块:
`import MySQLdb` 这行代码导入了Python的MySQL数据库连接库,使得我们可以使用Python来操作MySQL数据库。
2. 建立数据库连接:
```python
conn = MySQLdb.connect(host='localhost', user='root', passwd='admin')
```
这里创建了一个到本地MySQL服务器的连接,使用用户名`root`和密码`admin`。`host`参数指定了数据库服务器的位置,通常是`localhost`表示本地主机。
3. 创建游标对象:
```python
cursor = conn.cursor()
```
游标是用于在数据库上执行SQL命令的对象,它允许我们执行查询并获取结果。
4. 执行SQL语句:
- 创建数据库:
```python
cursor.execute('create database if not exists python')
```
这行代码执行了一个SQL命令,如果`python`数据库不存在,就创建它。
- 选择数据库:
```python
conn.select_db('python')
```
使用`select_db()`方法切换到名为`python`的数据库。
- 创建数据表:
```python
cursor.execute('create table test(id int, info varchar(100))')
```
这个SQL命令创建了一个名为`test`的表,包含两列:`id`(整数类型)和`info`(最大长度为100的字符串类型)。
- 插入数据:
- 单条插入:
```python
cursor.execute('insert into test values (%s, %s)', value)
```
使用占位符`%s`和提供的`value`列表插入一条记录。
- 批量插入:
```python
cursor.executemany('insert into test values (%s, %s)', values)
```
`executemany()`方法用于执行多次相同的SQL插入语句,但每次使用不同的参数值。
5. 查询数据:
- 获取记录数量:
```python
count = cursor.execute('select * from test')
print("总共有{}条记录".format(count))
```
`execute()`方法执行SQL查询,并返回受影响的行数。这里是查询表中的所有记录。
- 获取单条记录:
```python
result = cursor.fetchone()
print(result)
```
`fetchone()`方法返回结果集中下一条记录,如果没有更多记录,则返回`None`。
- 获取多条记录:
- 获取5条记录:
```python
results = cursor.fetchmany(5)
for r in results:
print(r)
```
`fetchmany(size)`方法返回指定数量的记录,这里返回了5条。
- 获取所有剩余记录:
```python
results = cursor.fetchall()
```
`fetchall()`方法返回所有剩余的记录。
6. 关闭连接:
```python
conn.close()
```
最后,使用`close()`方法关闭与数据库的连接,释放资源。
这个脚本是学习Python数据库操作的一个基础示例,涵盖了连接、创建、查询和关闭数据库的基本操作。对于初学者来说,理解这些概念是进一步探索更复杂数据库操作的基础。
2019-12-16 上传
2015-10-29 上传
2023-05-14 上传
2024-02-22 上传
2023-05-27 上传
2023-07-22 上传
2023-03-29 上传
2023-07-25 上传
Helenlhy
- 粉丝: 0
- 资源: 2
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器