#导入需要的包,使用pymysql操作数据库

#pandas包很强大,可以直接读取数据表,创建dataframe数据结构,同时可以直接将dataframe导出到数据库

#sqlalchemy创建引擎,与数据库进行连接

import pymysql
import pandas as pd
import sqlalchemy
from sqlalchemy import create_engine
from pandas import DataFrame

#把数据表导入数据库
def put_data(df1):
  user = '***'
  pwd = '***'
  host = '***'
  port = 3306
  DB = '***'

  #引擎:也就是实体数据库连接。传入参数:数据库类型+连接库+用户名+密码+主机,字符编码
  conn = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(user, pwd, host, port, DB)
  conn1 = create_engine(conn)

  #to_sql函数支持两类mysql引擎一个是sqlalchemy,另一个是sqlliet3.没错,在你写入库的时候,pymysql是不能用的!!!mysqldb也是不能用的,你只能使用sqlalchemy或者sqlliet3!注意!!!to_sql函数并不在pd之中,而是在io.sql之中,是sql脚本下的一个类!!!所以to_sql的最好写法就是:
  return pd.io.sql.to_sql(df1, name='***', con=conn1, if_exists='append')

  #to_sql参数说明:(数据, '表名', con=连接键, schema='数据库名', if_exists='操作方式')? ? 操作方式有append、fail、replace、append:如果表存在,则将数据添加到这个表的##后面

df1 = pd.read_excel(r'***.xlsx')
put_data(df1)

#从数据库提取数据表
def get_data():
  user = '***'
  pwd = '***'
  host = '***'
  port = 3306
  DB = '***'
  conn = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(user, pwd, host, port, DB)
  conn1 = create_engine(conn)
  sql_cmd = 'SELECT * FROM ***'
  return pd.read_sql(sql=sql_cmd, con=conn1)
df1 = get_data()
df1.to_excel(r'***.xlsx')

Pymysql+Pandas+Sqlalchemy数据库更新脚本编写的更多相关文章

  1. Python 实现数据库更新脚本的生成

    我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了 ...

  2. PowerDesigner 如何生成数据库更新脚本

    最近在学习使用PowerDesigner 这个数据库设计工具,发现真的很强大,可以做很多事情,其中就涉及到如果数据库要进行更新了怎么办,主要是增加表,最麻烦的是修改字段名称,增加字段等操作,遇到主要的 ...

  3. mysql数据库更新

    在使用mysql数据库的时候,A方使用一个版本,B方在使用一个版本数据库进行开发使用,B方在开发的时候,有新的需求,需要添加表字段和所需要的表.但是A方已经在使用之前的版本数据库并且数据库里面有真实的 ...

  4. 【转】MySQL— pymysql and SQLAlchemy

    [转]MySQL— pymysql and SQLAlchemy 目录 一.pymysql 二.SQLAlchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和 ...

  5. python 全栈开发,Day142(flask标准目录结构, flask使用SQLAlchemy,flask离线脚本,flask多app应用,flask-script,flask-migrate,pipreqs)

    昨日内容回顾 1. 简述flask上下文管理 - threading.local - 偏函数 - 栈 2. 原生SQL和ORM有什么优缺点? 开发效率: ORM > 原生SQL 执行效率: 原生 ...

  6. sqlmap tamper脚本备忘录与tamper脚本编写

    查看sqlmap全部脚本 $ python sqlmap.py --list-tampers 使用方法 --tamper=TAMPER 2019.9更新后翻译 * apostrophemask.py- ...

  7. 小麦苗数据库巡检脚本,支持Oracle、MySQL、SQL Server和PG等数据库

    目录 一.巡检脚本简介 二.巡检脚本特点 三.巡检结果展示 1.Oracle数据库 2.MySQL数据库 3.SQL Server数据库 4.PG数据库 5.OS信息 四.脚本运行方式 1.Oracl ...

  8. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

  9. Python3 使用pymysql链接MySQL数据库

    1,pymysql安装 pip install pymysql 2,pymysql使用 import pymysql 3,实例查询 import pymysql #获取一个数据库链接 #格式 主机地址 ...

随机推荐

  1. Wireshark教程之一:认识Wireshark界面

    1.下载与安装 官网地址:https://www.wireshark.org/ 官网下载地址:https://www.wireshark.org/#download 本文以windows环境为例来说明 ...

  2. 2019 乐游网络java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.乐游网络等公司offer,岗位是Java后端开发,因为发展原因最终选择去了乐游网络,入职一年时间了,也成为了面 ...

  3. spring boot整合spring Data JPA和freemarker

    1.spring Data JPA简介 是一个替代hibernate的一个作用于数据库的框架. 2.整合 1.导入依赖 <dependency> <groupId>org.sp ...

  4. logback配置和使用

    简介 logback是由log4j创始人设计的又一个开源日志组件.当前分成三个模块: logback-core是其它两个模块的基础模块. logback-classic是log4j的一个 改良版本.此 ...

  5. JS面向对象设计-理解对象

    不同于其他面向对象语言(OO,Object-Oriented),JS的ECMAScript没有类的概念, 它把对象定义为"无序属性(基本值.对象.函数)的集合",类似于散列表. 每 ...

  6. node.js中的fs.rename()方法

    node.js 中的fs.rename()模块 var fs=require('fs');//node.js的核心模块 原生模块.修改文件名称,可更改文件的存放路径 方法说明 : 修改文件名称,可更改 ...

  7. Nuxt项目搭建到发布部署

    一.项目目录结构: 方式1.直接利用官方提供好的脚手架工具进行搭建:npx create-nuxt-app <项目名> 目录会是这样(具体目录都放些什么,请看官方文档,详细): 方式2.手 ...

  8. Android-----RadioButton单选使用(实现简单温度转换)

    废话少说,直接上代码: xml布局文件代码: <?xml version="1.0" encoding="utf-8"?> <LinearLa ...

  9. CentOS7- 配置阿里镜像源

    CentOS7- 配置阿里镜像源 1. 安装wgetyum install -y wget 2. 用wget下载repo文件 输入命令wget http://mirrors.aliyun.com/re ...

  10. sqlserver语句随笔

    替换数据:update 表名 set 列=replace(列,'要替换的数据','替换成的数据'),例子:update kers set KeyConn=replace(KeyConn,'-','/' ...