目前用到的连接数据库,主要实现连个功能:1. 根据sql查询 2.将dataframe数据通过pandas包写入mysql数据库中
1. 根据sql查询:
通常我们通过sql查询mysql中的表,分三步1.连接数据库 2.数据查询 3.关闭连接,如果需要查询的步骤较多,将查询封装成函数,通过参数传递sql代码会省事很多。
## 定义连接数据库函数
def my_db(host,user,passwd,db,sql,port= 3306,charset = 'utf8'):
coon = pymysql.connect(host=host,
port=port,
user=user,
passwd = passwd,
db = db,
charset = charset
)
cur = coon.cursor()
cur.execute(sql)
if sql.strip()[:6].upper() == 'SELECT':
res = cur.fetchall()
else:
coon.commit()
res = 'ok'
cur.close()
coon.close()
return res
注意点: 1.端口一般为3306 ,且不能带引号
2 . 将dataframe写入mysql ,本例选用to_sql()
import pymysql
import pandas as pd
from sqlalchemy import create_engine
conn = create_engine('mysql+pymysql://用户名:密码@主机名:3306/数据库名',encoding='utf8')
pd.io.sql.to_sql(数据框, mysql表名, conn, if_exists='replace')
3. cursor 和 create_engine 的区别:
太复杂了,不懂-----