Python操作MySQL数据库
环境声明
环境声明
- 系统: Windows10家庭中文版
- 硬件: 16G内存、8核CPU
- Py版本: 3.7.6
- pymysql版本: 1.0.2
- Mysql版本: 5.7.26
环境部署
安装pymysql
1 | # 安装 |
验证环境
1 | import pymysql |
属性方法
连接数据库
1 | # 连接数据库 |
游标对象
1 | # 创建游标对象 |
执行SQL语句
1 | # 单条语句 |
查询数据
1 | fetchone() # 获取单条数据 |
增改删数据
- 执行完添加、修改、删除后,需要提交事务
- 当想要撤销添加、修改、删除时,可以进行事务回滚
1 | # 提交事务 |
连接数据库
语法
- 执行一条查询语句时往往会得到N条数据,执行SQL语句取出这些返回结果的接口,就称之为游标
- 如果不使用游标,查询语句会将所有数据一次性返回到界面中,且无法对该数据进行操作
- 使用游标后,系统会将查询结果先保存起来,当需要数据时就借助游标一行一行的取数据
1 | import pymysql |
创建数据库
创建示例
- 先连接到数据库,再创建游标对象,再执行SQL语句创建数据库,最后关闭连接
1 | import pymysql |
创建数据表
创建示例
- 先连接到数据库,再选择数据表,再创建游标对象,再执行SQL语句创建数据表,最后关闭连接
1 | import pymysql |
插入表数据
插入方法
1 | # 方法1 |
插入单条数据
- 先连接到数据库,再选择数据表,再创建游标对象,再执行SQL语句插入数据,再提交事务,最后关闭连接
1 | import pymysql |
插入多条数据
- 将单条要插入的数据存储到元组中,再将元组的数据存储到列表中
- 注意这里使用的是
executemany
方法
1 | import pymysql |
查询表数据
全部查询
- 使用
execute()
方法返回的只是受影响的行数,并不能拿到真正的查询数据 - 使用
execute()
方法后再对游标对象使用fetchall()
,获取到所有数据
1 | import pymysql |
逐条查询
- 每调用一次
fetchone()
方法就会获取到一条数据,当没有数据可以获取时返回None
- 该方法类似于迭代器,每次获取一条,直到数据被取完
1 | import pymysql |
1 | # 遍历 |
获取指定条数数据
fetchmany()
方法用来获取游标处的指定条数数据- 注意游标是会移动的,当获取两条数据后游标的位置也移动到了第二条数据的后面
- 这时候再获取一次数据就返回第三条数据,以此类推
1 | import pymysql |
更新表数据
修改单条数据
- 将
users
表的admin
密码修改为111111
- 执行单条SQL使用
execute()
方法
1 | import pymysql |
修改多条数据
- 将
users
表的admin
密码修改为123123
,guest
密码修改为aaaaaa
- 执行多条SQL使用
executemany()
方法
1 | import pymysql |
删除表数据
删除单条数据
- 将
users
表的admin
用户删除 - 执行单条SQL使用
execute()
方法
1 | import pymysql |
删除多条数据
- 将
users
表的guest
、user1
用户删除 - 执行多条SQL使用
executemany()
方法 - 注意元组只有一条数据时数据后面要加逗号,如
('admin',)
1 | import pymysql |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 大胖胖的笔记!