Login
网站首页 > 文章中心 > 其它

如何使用python连接mysql数据库

作者:小编 更新时间:2023-08-16 08:22:00 浏览量:204人看过

首先在我们工作中,难免遇到给测试环境造大量的测试数据,给数据库造数据有很多方式方法,这里用python造数据一般是这样的:

如何使用python连接mysql数据库

第二步:进入数据库后先验证数据库是否正常,比如先查询库,表等,show database;? ?use 库名;等等

第三步:我这边python本地没有装mysql库,先在本地安装库.我python安装在D盘,首先切换到D盘后执行pip install pymysql

如何使用python连接mysql数据库

第四步:在linux系统里的mysql数据库先创建一个库用来做专门测试用的

如何使用python连接mysql数据库

第五步:打开pycharm后,新创建一个测试包及测试.py文件

由于Python统一了数据库连接的接口,所以?pymysql?和?MySQLdb?在使用方式上是类似的

connection对象支持的方法cursor() 使用该连接创建并返回游标commit() 提交当前事务,不然无法保存新建或者修改的数据rollback() 回滚当前事务close() 关闭连接

cursor对象支持的方法execute(op) 执行SQL,并返回受影响行数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(15) 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)  # 收入增加2000
except Exception as e:
connect.rollback()  # 事务回滚
print('事务处理失败', e)
else:
connect.commit()  # 事务提交
print('事务处理成功', cursor.rowcount)

# 关闭连接
cursor.close()
connect.close()

======================测试结果========================

如何使用python连接mysql数据库

以上就是土嘎嘎小编为大家整理的如何使用python连接mysql数据库相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章