PyMySQL
(1)简介
PyMySQL 是一个用于 Python 的纯 Python MySQL 客户端库,它实现了 MySQL 协议,可以与 MySQL 服务器进行通信。它允许 Python 开发人员在其应用程序中轻松地与 MySQL 数据库进行交互,执行查询、插入、更新和删除数据等操作。PyMySQL 被广泛用于 Python Web 开发、数据分析和其他需要与 MySQL 数据库进行交互的应用程序中。
以下是 PyMySQL 的一些主要特点和优势:
- 纯 Python 实现:PyMySQL 是用纯 Python 编写的,因此它可以在各种 Python 环境中运行,而无需额外的依赖项。
- 轻量级和易于使用:PyMySQL 提供了简洁的 API,使得连接到 MySQL 数据库并执行常见的数据库操作变得非常简单。
- 支持 Python 数据结构:PyMySQL 支持 Python 的数据结构,比如字典和元组,这使得从数据库中检索的数据可以方便地与 Python 中的数据结构进行交互和处理。
- 安全性:PyMySQL 提供了防止 SQL 注入攻击的机制,可以通过参数化查询来保护应用程序免受恶意输入的影响。
- 跨平台性:由于 PyMySQL 是纯 Python 实现的,因此它可以在各种操作系统上运行,包括 Windows、Linux 和 macOS。
- 活跃的社区支持:PyMySQL 有一个活跃的开发社区,用户可以在社区中提问、分享经验和解决问题。
(2)使用
- 要使用 PyMySQL,首先需要安装它。可以使用 pip 工具来安装 PyMySQL。在终端或命令提示符中执行以下命令:
pip install pymysql
(1)返回的数据是查询到的结果的条数 execute(sql)
import pymysql
conn = pymysql.connect(host='localhost',
user='root',
password='123456',
database='123',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
sql = 'select * from user where password = 123;'
# 返回的数据是查询到的结果的条数
res = cursor.execute(sql)
print(res) # 3
(2)查看执行sql语句后返回的所有结果 fetchall()
import pymysql
conn = pymysql.connect(host='localhost',
user='root',
password='123456',
database='123',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
sql = 'select * from user where password = 123;'
res = cursor.execute(sql)
# 查看执行sql语句后返回的所有结果
res = cursor.fetchall()
print(res)
# [{'id': 1, 'email': '[email protected]', 'password': '123'},
# {'id': 3, 'email': '[email protected]', 'password': '123'}]
(3)查看一条结果 fetone()
import pymysql
conn = pymysql.connect(host='localhost',
user='root',
password='123456',
database='123',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
sql = 'select * from user where password = 123;'
res = cursor.execute(sql)
res = cursor.fetchone()
print(res)
# {'id': 1, 'email': '[email protected]', 'password': '123'}
(4)查看指定数量结果 fetchamany(size=)
import pymysql
conn = pymysql.connect(host='localhost',
user='root',
password='123456',
database='123',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
sql = 'select * from user where password = 123;'
res = cursor.execute(sql)
res = cursor.fetchmany(size=1)
print(res)
# {'id': 1, 'email': '[email protected]', 'password': '123'}
(5)插入数据
- 连接到 MySQL 数据库。
- 创建一个游标对象。
- 使用游标对象执行 SQL 插入语句 INSERT INTO VALUES
- 提交事务(如果启用了自动提交)或手动提交事务(如果未启用自动提交)。
- 关闭游标和数据库连接。
import pymysql
# 连接到 MySQL 数据库
conn = pymysql.connect(host='localhost',
user='root',
password='123456',
database='123',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with conn.cursor() as cursor:
# 执行插入语句
sql = "INSERT INTO user (email, password) VALUES (%s, %s)"
cursor.execute(sql, ('[email protected]', '123456789'))
# 提交事务(如果未启用自动提交)
conn.commit()
print("Data inserted successfully!")
finally:
# 关闭数据库连接
conn.close()
(6)更新数据
- 连接到 MySQL 数据库。
- 创建一个游标对象。
- 使用游标对象执行 SQL 更新语句 UPDATE SET
- 提交事务(如果启用了自动提交)或手动提交事务(如果未启用自动提交)。
- 关闭游标和数据库连接。
import pymysql
# 连接到 MySQL 数据库
conn = pymysql.connect(host='localhost',
user='root',
password='123456',
database='123',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with conn.cursor() as cursor:
# 执行更新语句
sql = "UPDATE user SET password=%s WHERE email=%s"
cursor.execute(sql, ('123', '[email protected]'))
# 提交事务(如果未启用自动提交)
conn.commit()
print("Data updated successfully!")
finally:
# 关闭数据库连接
conn.close()
标签:pymysql,cursor,123,sql,password,conn
From: https://www.cnblogs.com/ssrheart/p/18015835