Python 操作 MySQL 数据库

文章目录


一、概述

Python通过pymysql库可以方便地操作MySQL数据库,实现数据查询、插入、更新和删除等操作。pymysql是一个纯Python实现的MySQL客户端库,支持Python 3.x版本。

  • pymysql 库安装:pip install pymysql

二、基本连接与游标操作

1. 数据库连接

import pymysql # 建立数据库连接 connect = pymysql.connect( host="master",# 数据库主机地址 user="root",# 数据库用户名 password="123456",# 数据库密码 database="stu",# 要使用的数据库名 port=3306# 端口号,MySQL默认3306)

参数说明:

  • host: MySQL服务器地址,可以是IP或域名
  • user: 登录用户名
  • password: 登录密码
  • database: 要操作的数据库
  • port: 端口号,默认3306

2. 创建游标

cursor = connect.cursor()
  • 游标用于执行SQL语句并获取结果,是数据库操作的核心对象。

三、SQL语句执行方式

1. 字符串拼接方式(不推荐)

name ="zhouqi" balance =1500 ids ="20250101 OR 1=1"# 存在SQL注入风险 stu_id ="20251001"# 第一种写法:字符串直接拼接 query_sql ="select * from students where stu_id = "+f"{ids}"# 或使用格式化字符串# query_sql = "select * from students where stu_id = %s" % idsprint(query_sql)# 输出:select * from students where stu_id = 20250101 OR 1=1 cursor.execute(query_sql)

注意:这种方式存在SQL注入风险,当用户输入包含SQL语句时(如OR 1=1),可能导致数据泄露。

2. 参数化查询方式(推荐)

# 第二种写法:使用参数化查询 query_sql ="insert into account values(0,%s,%s)"print(query_sql)# 输出:insert into account values(0,%s,%s) cursor.execute(query_sql,(name, balance))

优势:

  • 防止SQL注入攻击
  • 自动处理数据类型转换
  • 提高代码可读性

3. 批量插入数据

# 一次性插入多条数据 name_list =[("liuba",2000),("hongjiu",3000)] cursor.executemany(query_sql, name_list)
  • executemany()方法可以高效地批量执行相同的SQL语句,参数为元组列表(即使参数为一个也需要使用元组)。

四、事务管理与结果获取

1. 提交事务

# 提交事务,将更改更新到表 connect.commit()

注意:对于INSERT、UPDATE、DELETE等修改操作,必须调用commit()才会生效。

2. 结果集获取

# 获取单条记录 cursor.execute("SELECT * FROM students")print(cursor.fetchone())# 获取第一条记录print("*"*50)# 获取所有记录print(cursor.fetchall())# 获取所有记录print("*"*50)# 获取指定数量的记录print(cursor.fetchmany(10))# 获取10条记录

方法:

  • fetchone(): 获取下一行记录
  • fetchall(): 获取所有剩余记录
  • fetchmany(size): 获取指定数量的记录,为-1时获取全部记录

五、使用 with (上下文管理器)优化代码

1. 文件读取与数据处理

import pymysql withopen(r"D:\Desktop\mysqlmd\第四天\socres.txt","r", encoding="utf-8")as fp: line_list = fp.readlines()print(line_list) tuple_list =[]for line in line_list: li = line.strip().split(",") tuple_list.append((int(li[0]),int(li[1]),int(li[2]),str(li[3])))print(tuple_list)

2. 使用with语句自动管理资源

# with语句自动管理连接和游标的关闭with pymysql.connect( host="master", user="root", password="123456", database="stu", port=3306)as connnet:with connnet.cursor()as cursor: insert_sql ="insert into score values(%s,%s,%s,%s)"try: cursor.executemany(insert_sql, tuple_list)except Exception as e:print(e) connnet.rollback()# 发生异常时回滚事务else: connnet.commit()# 正常执行时提交事务

优势:

  • 自动关闭连接和游标,避免资源泄漏
  • 代码结构更清晰

Read more

解锁AIGC新时代:通义万相2.1与蓝耘智算平台的完美结合引领AI内容生成革命

解锁AIGC新时代:通义万相2.1与蓝耘智算平台的完美结合引领AI内容生成革命

前言 通义万相2.1作为一个开源的视频生成AI模型,在发布当天便荣登了VBench排行榜的榜首,超越了Sora和Runway等业内巨头,展现出惊人的潜力。模型不仅能够生成1080P分辨率的视频,而且没有时长限制,能够模拟自然动作,甚至还可以还原物理规律,这在AIGC领域中简直堪称革命性突破。通过蓝耘智算平台,我们能够轻松部署这个模型,创建属于自己的AI视频生成工具。今天,我将为大家深入探讨通义万相2.1的强大功能,并分享如何利用蓝耘智算平台快速入门。 蓝耘智算平台 1. 平台概述 蓝耘智算平台是一个为高性能计算需求设计的云计算平台,提供强大的计算能力与灵活服务。平台基于领先的基础设施和大规模GPU算力,采用现代化的Kubernetes架构,专为大规模GPU加速工作负载而设计,满足用户多样化的需求。 2. 核心优势 * 硬件层: 蓝耘智算平台支持多型号GPU,包括NVIDIA A100、V100、H100等高性能显卡,能够通过高速网络实现多机多卡并行计算,突破单机算力瓶颈。 * 软件层: 集成Kubernetes与Docker技术,便于任务迁移与隔离;支持PyTo

VsCode远程Copilot无法使用Claude Agent问题

最近我突然发现vscode Copilot中Claude模型突然没了,我刚充的钱啊!没有Claude我还用啥Copilot 很多小伙伴知道要开代理,开完代理后确实Claude会出来,本地使用是没有任何问题的,但是如果使用远程ssh的话,会出现访问异常,连接不上的情况。这时候很多小伙伴就在网上寻找方法,在vscode setting中添加这么一段代码。可以看看这篇博客 "http.proxy": "http://127.0.0.1:1082", "remote.extensionKind": { "GitHub.copilot": [ "ui" ], "GitHub.copilot-chat": [ "ui" ], "pub.name": [ "ui&

从Stable Diffusion迁移:Z-Image-Turbo快速上手指南

从Stable Diffusion迁移:Z-Image-Turbo快速上手指南 如果你已经熟悉Stable Diffusion(SD)的文生图流程,现在想尝试更高效的Z-Image-Turbo模型,这篇指南将帮助你快速完成技术迁移。Z-Image-Turbo作为新一代文生图模型,在生成速度和图像质量上均有显著提升,而迁移过程只需调整少量参数即可兼容现有工作流。这类任务通常需要GPU环境支持,目前ZEEKLOG算力平台提供了包含该镜像的预置环境,可快速部署验证。 为什么选择Z-Image-Turbo? * 性能优势:实测在相同硬件条件下,生成速度比SD快3-5倍 * 显存友好:16GB显存即可流畅运行基础模型(SD XL通常需要20GB+) * 兼容设计:支持直接加载SD风格的提示词(prompt)和部分LoRA模型 * 输出质量:在细节纹理和复杂构图场景表现更稳定 提示:Z-Image-Turbo默认分辨率提升至1024x1024,建议首次使用时先降低批次数量测试显存占用。 环境部署与镜像启动 1. 选择预装Z-Image-Turbo的镜像(如ZEEKLOG算

全网最靠谱有效!!!解决新机型 Copilot 键替代右 Ctrl 键问题

全网最靠谱有效!!!解决新机型 Copilot 键替代右 Ctrl 键问题

引路者👇: 前言 一、先搞懂:Copilot 键原本是干嘛的? 二、核心解决方案:用微软官方工具 PowerToys 映射 步骤 1:下载安装 PowerToys 步骤 2:开启 “键盘管理器” 功能 步骤 3:添加 “快捷键映射”(关键步骤) 步骤 4:测试功能是否生效 三、注意事项:确保映射长期生效 四、常见问题排查(避坑指南) 五、总结 前言         作为一名长期依赖右 Ctrl 键进行操作的程序员 / 办公用户,今年换了新的拯救者笔记本后,发现键盘上原本的右 Ctrl 键被一个陌生的 “Copilot 键” 取代了。日常用 “Ctrl+