python 第三方模块之 pymysql
pymysql 是一个纯 Python MySQL 客户端库。它的大部分 API 与 mysqlclient 和 MySQLdb 兼容。
首先我们要先安装 pymysql 模块:
pip install pymysql
建立数据库连接
conn = pymysql.connect(
host='127.0.0.1', # 本地数据库连接,也可连接远程数据库
port=3306, # 端口可写可不写,默认3306
user='root',
password="111",
database="test_db",
charset="utf8mb4"
)
数据库模块的使用
1. 生成游标对象
# cursor = conn.cursor() # 括号内不填写额外参数 数据是元组 指定性不强 [(),()]
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # [{},{}]
2. 编写 sql
sql = "select * from students" # 查找数据库test_db 下的students表
3. 交由服务端执行
affect_rows = cursor.execute(sql) # 返回sql影响的数据行数
print(affect_rows)
4. 获取执行的结果
cursor.fetchone() # 从当前位置 拿到一条执行结果
cursor.fetchall() # 拿到所有结果
crusor.fetchmany(n) # 从当前位置 拿到多个结果
游标的含义就是可以移动,我们在拿结果时,游标会自动的往后移动,如果我们想重新拿到前面的结果,可以使用滚动方法:
cursor.scroll(1,'relative') # 基于当前位置往后移动
cursor.scroll(0,'absolute') # 基于数据的开头往后移动
补充
在 pymysql 中,在查询时我们不需要二次确认,但是涉及增改删操作时,我们的 mysql 好像没有响应我们,这是因为 mysql 在触及这些操作时会问我们的客户端是否确认操作。
我们需要在执行完,对其进行确认
cursor.execute("update students set class='五年5班' where cid=10") # 改动某个数据值
conn.commit() # 针对 增 删 改 需要二次确认(代码确认)
这样就可以通过 python 代码实现对数据库数据的增删改查了。
而二次确认其实也不用我们专门写一下,还可以在连接时添加一个配置参数就行:
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password="111",
database="navicat_test1",
charset="utf8mb4",
autocommit=True # <---自动确认增删改
)