pymysql使用记录

最近由于需要来学习一下pymysql。

先来认识一下pymysql:
 

PyMySQL 是 Python 中一个用于连接 MySQL 数据库的库。它允许 Python 程序通过简单的 API 调用来连接、操作和管理 MySQL 数据库。PyMySQL 是在 Python 中使用纯 Python 编写的,因此它可以在几乎所有支持 Python 的平台上运行。

PyMySQL 提供了一种与 MySQL 数据库进行交互的简单方法,包括执行 SQL 查询、插入、更新和删除数据,以及管理数据库连接等操作。它的使用方式类似于其他数据库连接库,比如 MySQLdb。

使用 PyMySQL,你可以轻松地在 Python 中执行诸如查询数据库、读取数据、更新数据等操作。通常情况下,你需要安装 PyMySQL 库,然后在 Python 代码中导入并使用它来连接和操作 MySQL 数据库。

使用过程中主要包括三大部分

1、Windows下安装数据库

2、navicat安装与使用

3、pycharm操作数据库

在学习过程中主要是观看哔站up的视频。

【01.Windows系统下数据库安装教程-全网最详细的MySQL数据库安装搭建教程以及简单使用】https://www.bilibili.com/video/BV1BP4y1M7Xz?vd_source=046491acdcff4b39fed20406b36a93e2

后续会尝试制作一个基于pyqt5的学生管理系统。

安装好phpstudy

安装navicat

在软件安装家园公众号可以找到免费的安装教程。

安装成后界面

在pycharm上利用pymysql读取数据库

import pymysql

# 连接数据库
conn = pymysql.connect(host='127.0.0.1'  # 连接名称,默认127.0.0.1
                       , user='root'  # 用户名
                       , passwd='root'  # 密码
                       , port=3306  # 端口,默认为3306
                       , db='lyysxt'  # 数据库名称
                       , charset='utf8'  # 字符编码
                       )

cursor = conn.cursor()  # 生成游标对象

cursor.execute('select * from student;')  # 执行SQL语句
result = cursor.fetchall()  # 通过fetchall方法获得数据
print('查询到的结果:\t', result)  # 打印输出数据

cursor.close()  # 关闭游标
conn.close()    # 关闭连接

 

### 使用 PyMySQL 进行数据库操作 #### 安装 PyMySQL 为了使用 PyMySQL 模块,在 Python 环境中需要先安装此模块。可以利用 pip 工具来完成安装工作,命令如下所示[^4]: ```bash pip3 install pymysql ``` #### 创建数据库连接 创建与 MySQL 数据库之间的连接是进行任何数据库交互的第一步。下面是一个简单的例子展示如何建立这种连接: ```python import pymysql connection = pymysql.connect( host='localhost', user='your_username', # 替换为自己的用户名 password='your_password', # 替换为自己的密码 database='test_db' # 替换为目标数据库名称 ) try: with connection.cursor() as cursor: sql_query = "SELECT VERSION()" cursor.execute(sql_query) version = cursor.fetchone() print(f"Database version : {version}") finally: connection.close() ``` 这段代码展示了怎样安全地打开和关闭一个数据库会话,并执行一条 SQL 查询语句以获取当前使用的 MySQL 版本号。 #### 执行查询和其他SQL指令 一旦建立了有效的数据库连接,则可以通过 `cursor` 对象发送任意形式的标准 SQL 命令给服务器端。这里有一个更复杂的案例说明了如何插入新记录、读取多条记录以及更新现有数据: ```python with connection.cursor() as cursor: # 插入单个记录 insert_sql = 'INSERT INTO users (name, age) VALUES (%s, %s)' cursor.execute(insert_sql, ('Alice', 28)) # 提交更改 connection.commit() # 获取多个记录 select_all_users = "SELECT * FROM users" cursor.execute(select_all_users) result_set = cursor.fetchall() for row in result_set: print(row) # 更新特定条件下的记录 update_user_age = "UPDATE users SET age=%s WHERE name=%s" affected_rows = cursor.execute(update_user_age, (30, 'Bob')) print(f"{affected_rows} rows were updated.") # 删除符合条件的数据项 delete_old_records = "DELETE FROM users WHERE age>%s" deleted_count = cursor.execute(delete_old_records, (70,)) print(f"{deleted_count} old records have been removed.") # 不要忘记提交事务中的所有变更 connection.commit() ``` 以上脚本演示了几种常见类型的 CRUD(Create/Read/Update/Delete)操作方法。值得注意的是,当涉及到修改表结构或者删除大量数据时应当格外小心谨慎,最好提前做好备份措施以防万一。 #### 处理异常情况 在实际应用开发过程中不可避免会出现错误或意外状况的发生,因此编写健壮的应用程序还需要考虑这些因素。对于可能出现的问题应该采取适当的方式去捕获它们并作出响应。例如可以在 try-except 结构里加入 finally 子句确保无论发生什么都能正常释放资源。 ```python try: ... except Exception as e: print(e.args[0]) finally: if connection.open: connection.close() ``` 这样即使遇到未预见的情况也能保证不会留下悬而未决的数据库链接占用系统资源。 #### 遵循最佳实践建议 - 总是在不再需要的时候及时断开同数据库间的联系; - 将敏感信息比如账号名和密码存储于环境变量而非硬编码进源文件之中; - 利用预编译语句防止 SQL 注入攻击风险; - 合理规划每次请求返回的结果集大小以免一次性加载过多内容造成性能瓶颈;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值