下载pymysql模块
cmd里执行pip3 install pymysql
目录
- 使用步骤(查询数据为例)
- 插入及修改数据
- commit 与 roback
- 总结
1. 使用步骤
- 首先导入
import pymysql
- 创建连接得到一个连接对象
conn = pymysql.Connect(
host="127.0.0.1", # 数据库服务器主机地址
user="root", # 用户名
password="admin", # 密码
database="day42", #数据库名称
port=3306, # 端口号 可选 整型
charset="utf8" # 编码 可选
)
获取游标对象
cursor = conn.cursor(pymysql.cursors.DictCursor)
参数 : pymysql.cursors.DictCursor指定 返回的结果类型 为字典 默认是元组类型写一个sql语句
sql = "select *from emp"
执行sql 如果是select 语句返回的是 查询的条数
res = cursor.execute(sql)`
print(res) # 4
- 获取查询的记录
cursor.fetchall() 获取所有的结果
cursor.fetchone() 获取一条结果
cursor.fetchmany(2) 获取指定个数结果 这里是两条
6.5 scroll
因为游标对象就像游标 获取到一条记录就移动一格
scroll
可以让游标移动指定的格数
里面有两个参数
第一个参数是移动游标的值 , 可以是正数也可以说负数
第二个参数是指定移动的起始位置 , 可以是relative或absolute
relative
相对位置 , 即当前位置
absolute
绝对位置 即第一条记录那里
若不指定默认是relative
- 关闭连接
由内而外的关闭 , 先关闭游标对象 , 再关闭连接对象
cursor.close()
conn.close()
2. 修改及插入删除记录
插入与修改记录
步骤与上面相同 , 只需修改上面的sql 语句即可
但是修改后发现数据库的语句并没有改变
因为pymysql 模块默认是启用事务的
你的sql语句 如果不提交 相当于没有执行
!!!!!!!!!!!!注意!!!!!!!! : 指的是对表中的记录的操作是不提交的 像删库删表是直接就删了无法撤回的
3. commit 与 roback
commit :提交
在操作完成后需要提交修改
conn.commit()
roback : 回滚
conn.rollback()
让两条sql语句要么一起执行成功 , 要么一起执行失败
比如银行转账的步骤是一个账户扣钱 , 另一个账户加钱 , 当执行完扣钱操作成功后发生意外导致加钱失败 , 那就凉了 .
所以用到回滚操作 , 加钱失败就回滚
try:
cursor.execute("update moneyTable set money = money - 50 where name = '小明'")
#如果小花的账户出问题了 无法更新数据 那就需要回滚
cursor.execute("update moneyTable set money = money + 50 where name = '小花'")
conn.commit()
except:
conn.rollback()
4. 总结
核心类 Connect链接用 和Cursor读写用
1.与数据库服务器建立链接
2.获取游标对象 (用于发送和接收数据)
3.用游标执行sql语句
4.使用fetch方法来获取执行的结果
5.关闭链接 先关游标 再关链接
游标的常用方法
1.创建游标 conn.cursor(指定查询结果的数据类型)
2.excute 执行sql
3.fetchone(当sql只有一条记录时) many(sql有多条并且需要指定条数) all(多条)
4.scroll 用于修改游标的当前位置
注意: pymysql 默认不提交修改 但是注意(指的是对表中记录的操作不提交) 像删库 删表 是无法撤销的