网站内容和备案不一样,建设摩托车是杂牌吗,网站域名注册时间查询,租注册地址一年多少费用发现宝藏
前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。【宝藏入口】。
1. 什么是 PyMySQL#xff1f;
PyMySQL 是一个纯 Python 编写的 MySQL 客户端库#xff0c;可以通过它轻松地在 Python 中连…发现宝藏
前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。【宝藏入口】。
1. 什么是 PyMySQL
PyMySQL 是一个纯 Python 编写的 MySQL 客户端库可以通过它轻松地在 Python 中连接并操作 MySQL 数据库。它兼容 MySQL 5.x 和 MariaDB并且与 MySQL 官方提供的客户端接口C API兼容。PyMySQL 支持数据库连接、执行 SQL 查询、以及提取查询结果等功能。
1.1 为什么选择 PyMySQL
纯 Python 实现没有 C 扩展安装起来更加简单兼容性更好。易用性与 MySQL 数据库的交互非常直观。支持 Python3在 Python3 环境中运行非常流畅。 2. 安装 PyMySQL
PyMySQL 可以通过 Python 的包管理工具 pip 进行安装。打开终端或命令提示符输入以下命令
pip install pymysql安装完成后你就可以在你的 Python 项目中使用 PyMySQL 了。 3. 连接 MySQL 数据库
要使用 PyMySQL 连接到 MySQL 数据库你需要提供 MySQL 服务的主机地址、用户名、密码和数据库名等信息。以下是一个连接的简单示例
import pymysql# 连接到数据库
connection pymysql.connect(hostlocalhost, # MySQL 服务器地址localhost 表示本地userroot, # 数据库用户名passwordpassword123, # 数据库密码databasetest_db, # 要连接的数据库名称charsetutf8mb4 # 字符集推荐使用 utf8mb4
)# 确保连接成功
print(Connected to MySQL Database!)3.1连接参数详解
hostMySQL 服务器的地址通常是 localhost 或 IP 地址。如果是远程服务器则需要填写远程服务器的 IP。user连接 MySQL 数据库的用户名。password连接数据库的密码。database指定要操作的数据库。charset字符集utf8mb4 是推荐的字符集支持更多的 Unicode 字符。 4. 执行查询操作
4.1 SELECT 查询
查询数据库通常使用 SELECT 语句。下面是如何在 Python 中执行查询操作并处理返回结果的示例
# 创建一个游标对象
cursor connection.cursor()# 执行 SELECT 查询
cursor.execute(SELECT * FROM users)# 获取所有结果
results cursor.fetchall()# 遍历并打印每一行数据
for row in results:print(row)# 关闭游标
cursor.close()cursor.execute()执行 SQL 语句。cursor.fetchall()获取查询结果的所有记录返回一个列表每个元素是数据库表中的一行。
如果只想获取单条记录可以使用 fetchone() 方法
cursor.execute(SELECT * FROM users LIMIT 1)
single_row cursor.fetchone()
print(single_row)4.2 INSERT 操作
插入数据时我们使用 INSERT INTO 语句。例如
cursor connection.cursor()# 插入一条数据
sql INSERT INTO users (name, age, email) VALUES (%s, %s, %s)
values (Alice, 28, aliceexample.com)cursor.execute(sql, values)# 提交事务
connection.commit()print(Record inserted successfully!)# 关闭游标
cursor.close()cursor.execute(sql, values)执行插入操作其中 %s 是占位符values 是一个元组或列表包含实际的插入值。connection.commit()提交事务确保数据写入数据库。
4.3 UPDATE 操作
更新数据时我们使用 UPDATE 语句。例如
cursor connection.cursor()# 更新一条数据
sql UPDATE users SET age %s WHERE name %s
values (30, Alice)cursor.execute(sql, values)# 提交事务
connection.commit()print(Record updated successfully!)# 关闭游标
cursor.close()4.4 DELETE 操作
删除数据时我们使用 DELETE FROM 语句。例如
cursor connection.cursor()# 删除一条数据
sql DELETE FROM users WHERE name %s
value (Alice,)cursor.execute(sql, value)# 提交事务
connection.commit()print(Record deleted successfully!)# 关闭游标
cursor.close()5. 处理数据库事务
数据库操作可以使用事务来管理。在 PyMySQL 中默认情况下数据库操作是自动提交的但我们可以通过显式地调用 commit() 来提交事务或者使用 rollback() 来回滚事务。
try:cursor connection.cursor()# 执行一些数据库操作cursor.execute(UPDATE users SET age 30 WHERE name Alice)# 如果没有错误提交事务connection.commit()except Exception as e:# 出现错误时回滚事务print(fError occurred: {e})connection.rollback()finally:cursor.close()6. 使用游标(Cursor)和提取结果
游标是用于执行 SQL 语句并获取结果的对象。在 PyMySQL 中我们通常使用游标来执行查询和数据操作。游标提供了如下几种常用方法
fetchall()返回所有查询结果。fetchone()返回查询结果中的第一条记录。fetchmany(size)返回查询结果中的多条记录size 是返回的条数。 7. 如何使用连接池管理多个数据库连接
对于高并发的应用程序管理数据库连接池是非常重要的。PyMySQL 本身不支持连接池但你可以使用其他第三方库来实现连接池如 DBUtils 或 SQLAlchemy。
例如使用 DBUtils 创建连接池
from dbutils.pooled_db import PooledDB
import pymysql# 创建连接池
pool PooledDB(creatorpymysql, # 使用 pymysql 作为数据库接口maxconnections5, # 连接池允许的最大连接数hostlocalhost,userroot,passwordpassword123,databasetest_db,charsetutf8mb4
)# 从连接池获取连接
connection pool.connection()# 执行数据库操作
cursor connection.cursor()
cursor.execute(SELECT * FROM users)
result cursor.fetchall()
print(result)# 关闭游标和连接
cursor.close()
connection.close()8. 异常处理
在数据库操作中捕获和处理异常非常重要。例如尝试执行一个 SQL 语句时可能会出现数据库连接失败、SQL 错误等问题。你可以使用 try/except 来捕获这些异常。
try:connection pymysql.connect(hostlocalhost,userroot,passwordwrongpassword,databasetest_db)
except pymysql.MySQLError as e:print(fError connecting to MySQL: {e})9. 常见问题解答
9.1. 为什么我的 PyMySQL 连接报错
确保数据库用户名、密码、数据库名、主机地址正确。检查 MySQL 服务是否已启动。确保防火墙未阻止 MySQL 连接。
9.2. 如何提高查询性能
使用索引优化查询。避免 SELECT *只查询需要的字段。分页查询避免一次性返回大量数据。