pymysql 模块可以通过 pip 安装。但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块。

[File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按钮]

使用Python的pymysql模块连接数据库的接口,相关的参数如下:

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的功能:

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,'乔布斯','',0.00,0.00,0.00);

Python连接MySQL数据库

使用Python脚本实现增删改查和事务处理,代码如下:

import pymysql.cursors

# 连接数据库
connect = pymysql.Connect(
host='192.168.11.200',
port=3306,
user='root',
passwd='root',
db='db5',
charset='utf8'
) # 获取游标
cursor = connect.cursor() # 插入数据
sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )"
data = ('雷军', '', 10000)
cursor.execute(sql % data)
connect.commit()
print('成功插入', cursor.rowcount, '条数据') # 修改数据
sql = "UPDATE trade SET saving = %.2f WHERE account = '%s' "
data = (8888, '')
cursor.execute(sql % data)
connect.commit()
print('成功修改', cursor.rowcount, '条数据') # 查询数据
sql = "SELECT name,saving FROM trade WHERE account = '%s' "
data = ('',)
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 = ('', 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) # 收入增加2000
except Exception as e:
connect.rollback() # 事务回滚
print('事务处理失败', e)
else:
connect.commit() # 事务提交
print('事务处理成功', cursor.rowcount) # 关闭连接
cursor.close()
connect.close()

测试结果如下:

最新文章

  1. iOS-RunLoop
  2. php web系统多域名登录失败解决方法
  3. 从tomcat启动到springIoC容器初始化(编辑中)
  4. Moqui学习之 Step by Step OrderProcureToPayBasicFlow
  5. shell eval用法
  6. 文件转换神器Pandoc使用
  7. HDU 5839 Special Tetrahedron (计算几何)
  8. OpenJudge/Poj 2027 No Brainer
  9. Linux使用问答
  10. hdu 5433 Xiao Ming climbing(bfs+三维标记)
  11. bestcoder.hdu.edu.cn
  12. 一个初学者的辛酸路程-FTP-9
  13. VS2012环境下C#调用C++生成的DLL
  14. 关于JavaScript的事件处理一些知识
  15. /etc/fstab文件分析(第二版)
  16. linux下c通过虚拟地址映射读写文件的代码
  17. C#编写COM组件
  18. 浅谈Static
  19. Java Web开发总结(一)
  20. [LeetCode] 441. Arranging Coins_Easy tag: Math

热门文章

  1. 如何吸引用户打开自己发送的EDM邮件
  2. 如何利用EDM邮件营销进行持续推销
  3. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_04 数据结构_5_数据结构_红黑树
  4. stack() unstack()函数
  5. fillna()函数
  6. pgd 游戏教程 基地
  7. window.open弹窗阻止问题解决之道
  8. 《深入浅出WPF》学习总结之学前知识
  9. log.info()传入多个参数的方法
  10. C#设计模式:代理模式(Proxy Pattern)