目录

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("数据写入成功!")