Python操作MySql(pymysql)
在python中操作MySql需要安装三方库:
安装第三方库:
~ pymysql ---> 纯Python编写,安装一定可以成功
~ mysqlclient ---> 底层用C编写,安装有可能无法成功
以pymsql为例,操作MySql主要分五步:
第一步:连接数据库 — pymysql.connect()
主要参数 | 说明 |
---|---|
host | 连接的主机地址(localhost 表示当前主机) |
port | 接入端口,通常为 3306 |
user | 用于登录的数据库用户 |
password | 密码 |
database | 要连接的数据库 |
charset | 字符编码 |
第二步:获取游标对象 — cursor()
游标类型 | 说明 |
---|---|
Cursor | 默认类型,以列表形式返回mysql语句返回结果 |
DictCursor | 以字典形式返回mysql语句返回结果,包括属性名 |
SSCursor、SSDictCursor | 按需返回,返回形式参照上面 |
第三步:通过游标对象向数据库发出mysql语句并获取执行结果
通过游标对象我们可以对数据库中的表进行操作,比如插入、删除、更改、查寻。操作完之后需要使用 commit() 进行提交,否则刚才的操作无效。
重要函数 | 说明 |
---|---|
execute(query,args=None) | 执行一条mysql语句,args参数通常在执行插入操作时使用 |
fetchall() | 在执行查询语句时使用,取出mysql语句返回的所有行 |
fetchone() | 在执行查询语句时使用,取出mysql语句返回的一行,再次使用则返回下一行 |
fetchmany(size=None) | 取出size行 |
第四步:回滚 — rollback()
配合try-except语句使用,当操作出错时,可以用这个函数回滚到执行事务之前
第五步:关闭连接释放资源 — close()
示例:
import pymysql
# 第一步创建连接
# 如果 localhost 无法接入,直接使用地址xxx.xxx.xxx.xxx
# root表示拥有最高权限的数据库用户,通常我们不使用root,而是使用只有特定权限的数据库用户
conn = pymysql.connect(host = 'localhost', port = 3306,
user = 'root', password = '123456',
database = 'hrs', charset = 'utf8mb4')
# 使用try-except-finally语句块
try:
# 第二步:获取游标对象
with conn.cursor() as cursor:
# 第三步:通过游标对象向数据库发出SQL并获取执行结果
# 写mysql语句时,绝对不能使用格式化字符串和拼接
# 插入一条数据(这里需要特别注意,不能使用格式化字符串和拼接,其他操作和mysql几乎一样)
affected_rows = cursor.execute(
'inset into tb_dep values(%s,%s,%s)',
('1001', '孙悟空', '花果山')
)
if affected_rows == 1:
print('添加成功')
# 手动提交
conn.commit()
except pymysql.MySQLError:
# 第四步手动回滚
conn.rollback()
finally:
# 第五步:关闭连接释放资源
conn.close()
上面就是简单的使用python操作mysql,欢迎大家评论交流