python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件
利用Python如何批量修改数据库执行Sql文件
来源:中文源码网 浏览: 次 日期:2018年9月2日
【下载文档: 利用Python如何批量修改数据库执行Sql文件.txt 】
(友情提示:右键点上行txt文档名->目标另存为)
利用Python如何批量修改数据库执行Sql文件 前言
由于上篇文章中批量修改了文件,有的时候数据库也需要批量修改一下,之前的做法是使用宝塔的phpMyAdmin导出一个已经修改好了的sql文件,然后依次去其他数据库里导入,效率不说极低,也算低了,且都是些重复性的劳动,所以打算用Python来批量执行sql
环境 版本:Python3.6
系统:MacOS
IDE:PyCharm
第三方库:pymysqlShow Code
import pymysqlhost = 'xxx.65.9.191'
username = 'root'
password = 'root'def connectMySQL():
print('开始连接数据库')
# 打开数据库连接
db = pymysql.connect(host,username,password,charset='utf8') # 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() # 使用 execute() 显示所有数据库
cursor.execute("SHOW DATABASES")
print('开始查询所有数据库') # 获取所有数据库名称
data = cursor.fetchall() # 开始操作
for dbb in data:
dbname = dbb[0]
print('选中' + dbname + '数据库')
# 选择数据库
cursor.execute("use " + dbname)
# 查看有哪些表
cursor.execute("show tables")
table = cursor.fetchall()
# 如果不是3个表的就不管
if len(table) != 3:
continue
for tb in table:
tbname = tb[0]
print('开始删除'+tbname+'表')
# 删除所有的表
cursor.execute("DROP TABLE " + tbname)
executeScriptsFromFile('1.sql', cursor)
db.close()
def executeScriptsFromFile(filename,cursor):
fd = open(filename, 'r',encoding='utf-8')
sqlFile = fd.read()
fd.close()
sqlCommands = sqlFile.split(';') for command in sqlCommands:
try:
cursor.execute(command)
except Exception as msg:
print(msg) print('sql执行完成')
if __name__ == "__main__":
connectMySQL()解释代码
这是用于执行sql文件,这里第一句就有个坑,最好设置encoding='utf-8'否则可能会报错UnicodeEncodeError: 'latin-1' codec can't encode characters in position 41-44: ordinal not in range(256),当读取了sql文件后用;分割语句然后用for循环依次执行sql语句
def executeScriptsFromFile(filename,cursor):
fd = open(filename, 'r',encoding='utf-8')
sqlFile = fd.read()
fd.close()
sqlCommands = sqlFile.split(';') for command in sqlCommands:
try:
cursor.execute(command)
except Exception as msg:
print(msg)
print('sql执行完成')这一段比较容易理解了,首先是连接数据库,注意还是最好设置一下charset='utf8' ,因为我要操作多个数据库执行sql文件,所以先把数据库名称全部获取出来,这里获取出来的结果是元组类型,即使for循环后出来的也是一个元组,所以用[0]取出元组中的值,然后选中数据库执行删表操作(当然不是每个人都要按我这些操作哈,需要执行啥操作就自己改SQL语句),表删完了,然后开始执行1.sql文件,执行完成后关闭数据库
def connectMySQL():
print('开始连接数据库')
# 打开数据库连接
db = pymysql.connect(host,username,password,charset='utf8') # 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() # 使用 execute() 显示所有数据库
cursor.execute("SHOW DATABASES")
print('开始查询所有数据库') # 获取所有数据库名称
data = cursor.fetchall() # 开始操作
for dbb in data:
dbname = dbb[0]
print('选中' + dbname + '数据库')
# 选择数据库
cursor.execute("use " + dbname)
# 查看有哪些表
cursor.execute("show tables")
table = cursor.fetchall()
# 如果不是3个表的就不管
if len(table) != 3:
continue
for tb in table:
tbname = tb[0]
print('开始删除'+tbname+'表')
# 删除所有的表
cursor.execute("DROP TABLE " + tbname)
executeScriptsFromFile('1.sql', cursor)
db.close()这2篇文章的代码从思路、编写、到测试,用了一下午吧!我对Python也不是很熟悉,所以中间也踩了些坑,但确实能看出来,Python作为胶水语言拿来做这些小工具真的舒服!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对中文源码网的支持。
亲,试试微信扫码分享本页! *^_^*
python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件相关推荐
- python对excel增删改查_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
- python批量生成图_利用Python批量生成任意尺寸的图片
实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...
- python检索用人名查电话_利用Python电话本小程序!这波操作你给几分?
原标题:利用Python电话本小程序!这波操作你给几分? 最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. 2 ...
- python实现批量下载视频_利用Python实现批量下载腾讯视频!
原标题:利用Python实现批量下载腾讯视频! 导语 利用Python下载腾讯非VIP视频,也就是可以免费观看的视频.做这个的起因是最近在看一个叫"请吃红小豆吧"的动漫,一共三分钟 ...
- python如何爬取sci论文_利用python爬取并翻译GEO数据库
GEO数据库是NCBI创建并维护的基因表达数据库,始于2000年,收录了世界各国研究机构提交的高通量基因表达数据,现芯片集数据量高达12万以上.想要从这里面挖掘(bai piao)数据,发个sci提前 ...
- python写dnf游戏脚本辅助_利用Python自动化操作鼠标键盘刷金币,工作室都靠这种脚本搬砖!...
不管是英雄联盟还是王者荣耀,总是有一个特殊的模式可以用来刷金币,为什么说是特殊模式呢?因为打的都是人机,或者并不影响游戏平衡,被其它玩家举报,同时你这种模式的战绩也没人去看你的. 如果能利用Pytho ...
- python 钉钉机器人发送图片_利用Python自动发送钉钉数据消息
现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上都能快速有效的被阅读,打开率会比邮件高上不少.所以准备使用钉钉来播报平台每日的成交额,并附上一些鼓励的话和图片.起到一个激励团队的作用 ...
- python 替换array中的值_利用Python提取视频中的字幕(文字识别)
我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...
- python把汉字变成拼音英文_利用python将表格中的汉字转化为拼音
GB18030的字符集标准 http://zbgb5.com/2/StandardDetail479488.htm 缺少包时用pip install 进行安装,例如: pip install xlsx ...
最新文章
- android 问题汇总系列之四
- jenkins maven没有使用全局设置文件地址_持续集成工具Jenkins看这篇就够啦!
- VTK:小部件之ImageTracerWidget
- wait()和sleep()
- C++ STL 迭代器5种类型 简介
- 7-9 用天平找小球 (10 分)
- 什么是epoll的水平触发与边缘触发?两段代码彻底理解
- 绝佳时机,前所未遇,让艰巨作业全自动化
- 【硬件解码系列】之ffmpeg硬件加速器
- 竞彩足球混合过关赔率API调用示例代码
- 黑马程序员C++学习笔记(第二阶段核心:面向对象)(二)
- macOS 12兼容机型列表 想知道你的Mac是否支持macOS Monterey吗?
- 重邮学报和计算机工程与应用,重庆邮电大学学报
- 记:COFF文件下的解析说明
- 紧贴潮流,初心未改:OpenInfra Days China升级回归,打造专属OpenStackers的开源大趴
- php惠新宸框架,首位国人惠新宸加入PHP官方开发组
- .net mvc ef 视图未定义主键问题
- 防火墙一个系统加固的例子
- Android Camera:从零开发一款相机APP Day01:前景
- 内存泄漏(Memory Leak )和内存溢出
热门文章
- 鸿蒙手机测试报名,鸿蒙2.0报名下载-鸿蒙2.0申请公测报名入口 v1.0-优盘手机站...
- php项目电影院售票管理系统,电影院售票管理系统
- python之变量的私密处理
- 对scala函数总结
- mysql作业是什么意思_MySQL 作业七
- ECS之System系统
- Xml的编码和Bom
- 在ASP.NET Identity 2.0中使用声明(Claims)实现用户组
- 蚂蚁金服数据可视化引擎 G2 4.0 正式版发布!
- 将JavaScript和VBScript添加到您的.NET Apps