python 连接 mysql
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,Python 3.x 连接数据库(pymysql 方式)==================pymysql===================由于 MySQLdb 模块还不支持 Python3.x,
千家信息网最后更新 2025年11月07日python 连接 mysql
Python 3.x 连接数据库(pymysql 方式)
==================pymysql===================
由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块。
pymysql 模块可以通过 pip 安装。但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块。
[File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按钮]
由于Python统一了数据库连接的接口,所以 pymysql 和 MySQLdb 在使用方式上是类似的:
pymysql.Connect()参数说明host(str): MySQL服务器地址port(int): MySQL服务器端口号user(str): 用户名passwd(str): 密码db(str): 数据库名称charset(str): 连接编码connection对象支持的方法cursor() 使用该连接创建并返回游标commit() 提交当前事务rollback() 回滚当前事务close() 关闭连接cursor对象支持的方法execute(op) 执行一个数据库的查询命令fetchone() 取得结果集的下一行fetchmany(size) 获取结果集的下几行fetchall() 获取结果集中的所有行rowcount() 返回数据条数或影响行数close() 关闭游标对象
==================MySQL===================
首先在连接数据库之前,先创建一个交易表,方便测试 pymysql 的功能:
DROP TABLE IF EXISTS `trade`;CREATE TABLE `trade` ( `id` int(4) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(6) NOT NULL COMMENT '用户真实姓名', `account` varchar(11) NOT NULL COMMENT '银行储蓄账号', `saving` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户储蓄金额', `expend` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户支出总计', `income` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户收入总计', PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;INSERT INTO `trade` VALUES (1,'乔布斯','18012345678',0.00,0.00,0.00);
==================Python===================
使用Python脚本实现增删改查和事务处理,源码如下:
import pymysql.cursors# 连接数据库connect = pymysql.Connect( host='localhost', port=3310, user='woider', passwd='3243', db='python', charset='utf8')# 获取游标cursor = connect.cursor()# 插入数据sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )"data = ('雷军', '13512345678', 10000)cursor.execute(sql % data)connect.commit()print('成功插入', cursor.rowcount, '条数据')# 修改数据sql = "UPDATE trade SET saving = %.2f WHERE account = '%s' "data = (8888, '13512345678')cursor.execute(sql % data)connect.commit()print('成功修改', cursor.rowcount, '条数据')# 查询数据sql = "SELECT name,saving FROM trade WHERE account = '%s' "data = ('13512345678',)cursor.execute(sql % data)for row in cursor.fetchall(): print("Name:%s\tSaving:%.2f" % row)print('共查找出', cursor.rowcount, '条数据')# 删除数据sql = "DELETE FROM trade WHERE account = '%s' LIMIT %d"data = ('13512345678', 1)cursor.execute(sql % data)connect.commit()print('成功删除', cursor.rowcount, '条数据')# 事务处理sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = '18012345678' "sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = '18012345678' "sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = '18012345678' "try: cursor.execute(sql_1) # 储蓄增加1000 cursor.execute(sql_2) # 支出增加1000 cursor.execute(sql_3) # 收入增加2000except Exception as e: connect.rollback() # 事务回滚 print('事务处理失败', e)else: connect.commit() # 事务提交 print('事务处理成功', cursor.rowcount)# 关闭连接cursor.close()connect.close()==================测试结果===================
数据
事务
数据库
成功
模块
结果
处理
对象
游标
账户
储蓄
支持
收入
方式
方法
服务器
用户
服务
查询
测试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
档案软件开发信
幼儿园开展网络安全教育信息
crm软件开发管理
上交招聘网络安全博士博士后
佳能相机软件开发包
学校网络安全课堂总结报告
数据库的日期参数
通信网络安全管理规定
应用软件开发商精装修
超微服务器跳线
电力监控系统网络安全十六字方针
核安保 网络安全
在软件建模过程中软件开发者
自己买的服务器有什么用
高级数据库的含义
博思软件开发票误开
数据库索引用的什么索引比较多
开源数据库抽取
oracle数据库入门
兰州网络技术服务有限公司
双活数据中心数据库同步技术
网络安全的十大方针
提示服务器运行失败
联通服务器怎么不卡顿
一个服务器电源能带两个主板吗
网络安全主要事项
警惕网络安全隐患标语
数据库fetch失败
我眼中的网络技术办公作文
服务器搭配gpu卡