pymysql
操作关系型数据库
关系型数据库
MySQL
的数据存储操作。
数据库连接
1 | import pymysql |
这里使用 connect()
方法声明一个 MySQL
连接对象 db
,传入对应参数
连接成功后,调用 cursor()
方法获得 MySQL
的操作游标,利用游标来执行 SQL
语句,
执行操作使用 execute()
方法实现,首先获取了 MySQL
当前的版本,使用 fetchone()
获取结果的第一条数据,
然后创建一个数据库,命名为 spider
,使用 utf8mb4
编码,
最终关闭数据库。
创建表
1 | import pymysql |
插入数据
1 | import pymysql |
这里最终需要执行对 db
对象的 commit()
方法才可以实现数据的插入,对于数据的插入、更新、删除操作都需要使用提交数据库才会保存生效。
我们还加入了异常处理,如果执行失败,打印异常并且执行数据回滚,保证了数据的一致性。
事务
一个事务中的命令,要么全部执行,要么都不执行,这样确保了数据的一致性。事务包括原子性、一致性、隔离性、和持久性。
属性 | 解释 |
---|---|
原子性 | 事务是一个不可分割的工作单位,事务中的所有操作,要么都执行,要么都不执行。 |
一致性 | 事务必须使数据库从一个一致性状态变到另一个一致性状态。 |
隔离性 | 一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 |
持久性 | 也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其有任何影响。 |
下面对插入进一步的改进,使用字典进行传入,对 sql
语句做更好的封装:
1 | import pymysql |
更新数据
1 | sql = 'update students set age = %s where name = %s' |
如果数据存在,则更新数据,如果数据不存在,则插入数据:
1 | import pymysql |
删除数据
1 | import pymysql |
查询数据
1 | import pymysql |
推荐逐条取数据:
1 | import pymysql |
利用内部的指针偏移获取查询结果。