首页 > 数据库 >Python 操作MySQL

Python 操作MySQL

时间:2022-11-16 13:23:31浏览次数:66  
标签:cur Python sql db pymysql df MySQL 操作 config

目录

pymysql的使用

起手式--Python连接MySQL的几种方式:

1.方式一:config+db+cur.execute (变量替换)

import pymysql
#开始连接数据库,使用pymysql,需要先import
config={
    "host":"127.0.0.1",
    "port":3306,
    "user":"root",
    "password":"123456",
    "database":"market_data"#设置要连接的数据库名
    }
db = pymysql.connect(**config)

sql1="insert into market_data.snap_fx_mid_price (datetime, currency_pair_cn, currency_pair_eg, fx_rate,bps) values (%s,%s,%s,%s,%s)" 
col1=(dt,vrtName,vrtEName,price,bp)
cur=db.cursor()  ##获取游标
cur.execute(sql1,col1)
db.commit()

#关闭游标和数据库的连接
cur.close()
db.close()

2.方式二: conn+execute(sql)

#重置gl00501表中id列的序号,使之连续
conn=py.connect('localhost',user='root',passwd='123456',db='ods_data')
cur=conn.cursor()
sql1='set @i=0;'
sql2='update ods_data.gl00501 set id=(@i:=@i+1);'
sql3='alter table ods_data.gl00501 auto_increment =0;'
cur.execute(sql1)
cur.execute(sql2)
cur.execute(sql3)
cur.close()
conn.close()
end_time=time.time()

3.方式三 pandas+config+db+read_sql

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

#开始连接数据库,使用pymysql,需要先import
config={
    "host":"127.0.0.1",
    "port":3306,
    "user":"root",
    "password":"123456",
    "database":"temp_practice"#设置要连接的数据库名
    }
db = py.connect(**config)

#导入表格
df_a=pd.read_sql('SELECT * FROM temp_practice.aaa', db)
df_b=pd.read_sql('SELECT * FROM temp_practice.bbb', db)
df=pd.read_sql('select * from temp_practice.aaa union SELECT id, name, phone, "" comments FROM temp_practice.bbb',db)

print(df_a)
print(df_b)
print(df)

#sqlalchemy登场
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/temp_practice')
#可以使用 echo=True 来显示加载数据库所执行的SQL语句

#将读好的df列表数据写入SQL对应表中
df=df.to_sql('aaaa',engine, if_exists='replace', index=False)
#写入文件要注意的,应该保持源表的列名与目标数据表的列名一致,否则不能插入.
#先在config里指定数据库名称, 然后在df.to_sql里直接指定表名即可.
#if_exists有三种选项, replace(替代), append(追加), fail (什么都不做)

cur=db.cursor()  
cur.close()
db.close()
print("所有数据已经成功添加")

4.方式三 pandas+config+db+read_sql

#sqlalchemy登场
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/temp_practice')
#可以使用 echo=True 来显示加载数据库所执行的SQL语句

#将读好的df列表数据写入SQL对应表中
df=df.to_sql('aaaa',engine, if_exists='replace', index=False)
#写入文件要注意的,应该保持源表的列名与目标数据表的列名一致,否则不能插入.
#先在config里指定数据库名称, 然后在df.to_sql里直接指定表名即可.
#if_exists有三种选项, replace(替代), append(追加), fail (什么都不做)

cur=db.cursor()  
cur.close()
db.close()

参考文档

https://www.cnblogs.com/guyouyin123/p/11396888.html
https://zhuanlan.zhihu.com/p/139763027

标签:cur,Python,sql,db,pymysql,df,MySQL,操作,config
From: https://www.cnblogs.com/treasury-manager/p/16895548.html

相关文章

  • 关于python文件操作(转)
    最近想把Excel转为xml文件,所以就在网上找了一些excel的访问库,结果发现了一个python的excel库,但是自已不知道python是怎么把文本写入硬盘的。所以在网上找到了这个python关于......
  • python-面相对象封装案例-笔记
    目标封装小明爱跑步存放家具01.封装封装 是面向对象编程的一大特点面向对象编程的 第一步 ——将 属性 和 方法 封装 到一个抽象的 类 中外界 使用 类 创建......
  • python-面相对象封装案例Ⅱ-笔记
    目标士兵突击案例身份运算符封装封装 是面向对象编程的一大特点面向对象编程的 第一步 ——将 属性 和 方法 封装 到一个抽象的 类 中外界 使用 类 创建 对......
  • python-私有属性和私有方法-笔记
    01.应用场景及定义方式应用场景在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到私有属性 就是 对象 不希望公开的 属......
  • 打包python为应用程序
    python第三方库安装工具pip的安装:pip:  AtoolforinstallingandmanagingPythonpackages.要用到第三方包,python的版本就必须是2.7https://pypi.python.org/pypi/s......
  • python中Decorators的用法
    最近看别人写的一个源码,发现有很多地方用到了@符号。有的还传入了参数。觉得这个好像很强大。所以就在网上找了一些相关的资料。也有一个专门讲python的网页也不错:htt......
  • python查看进程是否运行
    啥也不说了,直接上代码:#要先打开web服务器才能发推送消息#os.system("twistd-rkqueue#查看进程是否存在,linux系统中,使用ps-ef|greptwistd来查看进程运行情况,使用axu时......
  • 力扣374(java&python)-猜数字大小(简单)
    题目:猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n随机选择一个数字。请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了......
  • 实验 Linux Shell实现模拟多进程并发执行【操作系统】
    实验楼【操作系统】​​参考文章​​​​简单样例​​​​添加一个系统调用【实验】​​​​LinuxShell实现模拟多进程并发执行【实验】​​​​test1串行​​​​test2......
  • python爬取斗鱼主播图片
         今天闲来无事,爬取一下斗鱼女主播的图片,之前学习scrapy的时候写过一个找不到了,今天使用requests和bs4重新写了一份,闲话不多说,直奔主题。首先用Chrome浏览器......