pythonsqlalchemy-数据库的读取和写入
目录
python+sqlalchemy 数据库的读取和写入
Python+ SQLAlchemy 数据库的读取和写入
SQLAlchemy是Python中最有名的ORM(Object Relational Mapping,对象关系映射)框架之一,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,为高效和高性能的数据库访问设计 ,支持多数据库,如mysql、Oracle等。
环境
操作系统:Windows10
python:3.6
安装
pip install sqlalchemy
从数据库中读取数据
import pandas as pd
from sqlalchemy import create_engine
# 初始化数据库连接,使用pymysql模块
engine = create_engine("mysql+pymysql://{}:{}@{}/{}?charset={}"
.format('用户名',
'密码',
'ip地址:端口号',
'数据库名称',
'utf8')
)
sql1 = '''select * from table_name limit 20'''
df = pd.read_sql_query(sql1, engine)
print(df)
将数据写入数据库中
import pandas as pd
from sqlalchemy import create_engine
import os
# 初始化数据库连接,使用pymysql模块
engine = create_engine("mysql+pymysql://{}:{}@{}/{}?charset={}"
.format('用户名',
'密码',
'ip地址:端口号',
'数据库名称',
'utf8')
)
# 读取本地Excel文件
prefix = os.getcwd() # 获取当前路径
df = pd.read_excel(prefix + "/Data/table_name.xlsx")
# 将DataFrame的数据储存到数据库表中,如果库里没有该表名,则会自动创建该表
# if_exits: 三个模式:fail,若表存在,则不输出;replace:若表存在,覆盖原来表里的数据;append:若表存在,将数据写到原表的后面。默认为fail
# index:是否将df的index单独写到一列中
# chunksize:设置一次入库的大小
df.to_sql('table_name', engine, if_exists='append',index=False,chunksize=1000)
print("数据写入成功!")