Pymysql
简介
- pymysql 是python中操作mysql 数据库时所需要用到的一个包。
Pymysql 使用步骤
- 导入 Pymysql 包
- 创建连接对象{ connect() }
- 获取游标对象{ 连接对象.cursor() }
- Pymysql 完成数据的查询操作{ 游标对象.execute() }
- 关闭游标和连接{ 游标对象.close() 连接对象.close() }
导入 Pymysql 包
import pymysql
创建连接对象
调用 pymysql 模块中的 connect()函数来创建连接对象,代码如下:
conn = pymysql.connect(参数列表)
- 参数列表
- host : 连接的 MySQL 主机
- port : 连接的MySQL主机的端口,默认3306
- user : 连接的用户名
- password : 连接的密码
- database : 数据库的名称
- charset : 通信采用的编码方式,推荐使用 utf-8
- 连接对象conn的相关操作
- 关闭连接 conn.close()
- 提交数据 conn.commit()
- 撤销数据 conn.rollback()
获取游标对象
获取游标对象的目标就是要执行 SQL 语句,完成对数据库的 增删改查 操作
- 调用连接对象的cursor()方法
cur = conn.cursor()
- 游标操作说明:
- 使用游标执行的SQL语句:execute(operation[parameters]) 执行SQL语句,返回受影响的行数,主要用于执行 insert、updata、delete、select 语句
- 获取查询结果集中的一条数据 : cur.fetchone() 返回一个元组,如(1,‘张三’)
- 获取查询结果集中的所有数据:cur.fetchall() 返回一个元组,如((1,‘张三’),(2,‘李四’))
- 关闭游标:cur.close() 表示和数据库操作完成
增删改查操作
*** 查操作***
# 查的sql语句
sql = "select * from 数据表;"
# 执行sql语句完成相关数据操作
cursor.execute(sql)
*** 增删改操作***
# 增删改的sql语句
sql = "update student set name='唐氏' where id=8;"
cursor.execute(sql)
# 提交操作
conn.commit()
在 增删改 的操作中需要用连接对象的 **commit() **来提交操作
关闭连接
- 先关闭游标
cur.close()
- 后关闭连接
conn.close()
注意事项
- 错误一:
报错原因: 文件名和模块名一致
解决方案: 修改
文件名
-
错误二:
将连接对象中的 charset='utf-8'
改为 charset='utf8'
-
错误三:
该错误提示的意思是:sha256_password和caching_sha2_password两种加密方式需要cryptography。
所以只需要安装一下cryptography包就可以了:
pip install cryptography
import pymysql
# 创建连接对象
conn = pymysql.connect(
host="localhost",port=3306,user="root",password="密码",database="数据库名",charset="utf8"
)
# 创建游标
cur = conn.cursor()
# 获取查询
sql = "select * from 数据表名;"
cur.execute(sql)
res = cur.fetchall()
print(res)
## 若为增删改操作,需要进行提交
conn.commit()
#关闭连接
cur.close()
conn.close()