pymysql模块的使用

Import pymysql
1.连接数据库
db=pymysql.connect(参数列表)
Host:localhost
Port:3306(80%的数据库默认为3306,如果安装失败,一台电脑安装两个数据库,端口号不能安装一样)
User:root #用户名 "root"是一个特殊的用户,拥有最高权限(超级用户)。具有root用户权限的用户可以执行几乎所有的管理和配置操作,以及对数据库进行各种操作
password:密码
database:数据库
charset:’utf8’ #charset是指连接到MySQL数据库时使用的字符集,常用utf8

这里需要强调的知识点如下:在pymysql中,pymysql.connect()函数用于建立与MySQL数据库的连接。它接受多个参数用于配置数据库连接参数,并返回一个Connection对象,可以通过该对象进行后续的数据库操作。连接成功后,pymysql.connect函数会返回一个Connection对象,通过这个对象可以执行数据库操作,比如查询、更新等。
下面是pymysql.connect函数的基本语法:
pymysql.connect(host=None, user=None, password=‘’, database=None, port=0, charset=‘’)

比如:
db=pymysql.connect(
Host=localhost
Port=3306
User=root
Password=123456
Database:=’exercise’
Charset=’utf8’)

或者使用字典拆包的形式写:
Kwargs=(
host:localhost
port:3306
user:root
password:123456
database: exercise
charset:’utf8’)
db=pymysql.connect(**Kwargs) #字典拆包使用双星号
Ps:在这里使用了函数传参的字典拆包,所以加双星。

2.创建数据库的游标对象
cur=db.cursor # cur为可迭代对象
Ps:在pymysql库中,cursor对象用于执行SQL语句并获取执行结果。通过Connection对象的cursor()方法可以创建一个cursor对象,且该对象为可迭代对象。

try:
3.sql语句 分为两种,一种是读,一种是写
3.1 读语句:
sql=终端的语句
比如:sql=”select bname, author, press from books where author=’鲁迅’;”
cur.execute(sql) #执行sql语句 execute为执行的意思。
3.1. 1.one =cur.fetchone() #约等于调用了一次next,
print(one)
3.1.2 many=cur.fetchmany(2) #查询多个结果,约等于调用了二次next
print(many)
3.1.3 all=cur.fetchal() #查询所有结果
Print(all)
ps: many=cur.fetchmany(3) #产生的是((),(),()) 元组套元组
print(many)

给sql语句传值 使用第二个参数按照位置给sql语句%s传值

sql=”update books set price=%s”
“ where id=%s;”
cur.execute(sql,[98,6])

4.提交数据库
execpet Exception as e:
pint(e)
db.rollback()
Ps:在Python中,rollback函数通常用于数据操作时的回滚操作。它被用来撤销上一次提交的事务,将数据库恢复到之前的状态。如果执行SQL操作过程中出现异常,则会执行db.rollback()来回滚事务,使数据库恢复到事务开始前的状态。而如果没有出现异常,则会执行db.commit()提交事务,使数据库保持更改。
需要注意的是,回滚只能用于具备事务功能的数据库,例如MySQL、Oracle等。对于不支持事务的数据库,回滚操作将无效。另外,数据库模块的具体用法可能会有所不同,上述代码仅作为示例提供。
else:
db.commit()#事务控制的begin为默认

5.关闭
cur.close(关闭游标对象)
db.close(关闭数据库)

在这里补充一个重要知识点,数据库事务的定义:
在MySQL中,事务是指一系列数据库操作的集合,这些操作作为一个逻辑单元被执行。事务的特点是要么全部执行成功,要么全部失败回滚,保持数据库的一致性。
事务有以下四个属性(通常用ACID来描述):
1.原子性(Atomicity):事务中的所有操作要么全部成功执行,要么全部失败回滚,不会出现部分执行的情况。
2.一致性(Consistency):事务开始前和结束后,数据库的状态应保持一致。即,数据库的数据必须满足预定义的完整性约束。
3.隔离性(Isolation):并发执行的事务之间应互不干扰,每个事务都应该感觉不到其他同时运行的事务存在,即保证每个事务的操作独立性。
4.持久性(Durability):一旦事务被提交,其修改的数据将永久保存在数据库中,即使系统崩溃也不会丢失。
在事务的执行过程中,可以执行各种数据库操作,例如插入(INSERT)、更新(UPDATE)、删除(DELETE)等。如果在事务中的任何一步发生错误,可以使用ROLLBACK语句回滚所有操作,使得数据库回到事务开始前的状态。而如果没有错误发生,可以使用COMMIT语句将事务的所有操作永久保存到数据库。通过使用事务,可以确保多个数据库操作的一致性和可靠性。在并发环境下,事务可以控制不同连接之间的访问冲突,保证数据的正确性。

在这里重点强调一下一致性:
事务的一致性是指在事务开始之前和结束之后,数据库的状态必须保持一致。一致性是通过满足事务的各项约束和规则来保证的。
具体来说,数据库的一致性要求事务操作满足以下条件:
1.数据库的完整性约束得到了保护:事务执行前后,数据库中的数据必须满足在设计时定义的约束,例如主键、唯一性约束、外键关系等。
2.业务规则得到了保护:事务执行前后,数据库中的数据必须满足业务规则,例如账户余额不能为负数、库存量不能小于零等。
3.数据的关联关系得到了保护:事务执行前后,数据库中的数据之间的关联关系必须得到保证,例如订单和商品之间的关联关系、用户和角色之间的关联关系等。
如果事务执行过程中出现错误或者违反了上述约束条件,事务就会失败,数据库的状态将恢复到事务开始之前的状态,以保持一致性。这是通过事务的回滚操作(即使用ROLLBACK语句)实现的。事务的一致性是保证数据库数据的正确性和可靠性的重要因素,在并发环境下尤为重要。事务的隔离性和原子性等特性也是为了保障一致性的实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值