第一次时用create_engine来连接Aceess数据库报错,
engine = create_engine(f"microsoft+pyodbc:///?odbc_connect=Driver={{Microsoft Access Driver (.mdb,.accdb)}};DBQ={path1}")
运行后抱错
Can't load plugin: sqlalchemy.dialects:microsoft.pyodbc
有没有兄弟知道如何解决啊
yconnect = create_engine('mysql+mysqldb://root:password@host:port/db?charset=utf8')
pd.io.sql.to_sql(DataResultDF,'tablename', yconnect, schema='db', if_exists='append')
使用 Schema Type/SQL Expression Language/Engine/ConnectionPooling/Dialect 进行数据库操作。Engine使用Schema Type创建一个特定的结构对象,之后通过SQL Expression Language将该对象转换成SQL语句,然后通过 ConnectionPooling 连接数据库,再然后通过 Dialect 执行SQL,并获取结果。
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey
import MySQLdb
#创建数据库连接
engine = create_engine("mysql+mysqldb://liuyao:liuyao@121.42.195.15:3306/db_name", max_overflow=5)
# 获取元数据
metadata = MetaData()
# 定义表
user = Table('user', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(20)),
)
color = Table('color', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(20)),
)
#将dataframe 添加到 tmp_formidinfo 如果表存在就添加,不存在创建并添加
pd.io.sql.to_sql(DataResultDF,'tmp_formidinfo',engine, schema='db_name', if_exists='append')
# 执行sql语句
engine.execute(
"INSERT INTO db_name.color(id, name) VALUES ('1', 'liuyao');"
)
result = engine.execute('select * from color')
print(result.fetchall())
-----------------------------------------------------------------------------------
sql = 'select * from customer2018;'
df = pd.read_sql_query(sql, engine)
# read_sql_query的两个参数: sql语句, 数据库连接
df = pd.read_sql_query(sql, engine)
print(df)
create_engine 还有很多可选参数,这里介绍几个重要的参数
engine=create_engine('mysql://user:password@localhost:3306/test?charset=utf8mb4',
echo=False,pool_size=100,pool_recycle=3600,pool_pre_ping=True)
参考:https://blog.csdn.net/P01114245/article/details/89918197
https://www.jianshu.com/p/f039da1d90ce
https://www.jb51.net/article/164591.htm