目录
前言一、sqlalchemy连接access1.引入库2.连接二、pyodbc连接access1.引入库2.连接三、Access 连接字符串(参考)附:[数据库连接字符串] Access 连接字符串前言
记录python中access两种连接方式
一、sqlalchemy连接access
sqlalchemy-access方言版本连接access数据库
1.引入库
代码如下(示例):
pip install sqlalchemy-access
2.连接
代码如下(示例):
import urllibfrom sqlalchemy import create_engineconnection_string = ( r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" f"DBQ={db_path};" r"ExtendedAnsiSQL=1;" )connection_uri = f"access+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"engine = create_engine(connection_uri)query = """ SELECT * FROM 表名 WHERE 字段 LIKE 'info'; """with engine.connect() as connection:#读取数据库df_result = pd.read_sql_query(query,engine)with new_engine.connect() as con:#写入新数据库df_result.to_sql(table_name, con, if_exists='replace', index=False)
二、pyodbc连接access
利用pyodbc模块进行连接
1.引入库
代码如下(示例):
pip install pyodbc
2.连接
代码如下(示例):
import pyodbcimport pandas as pd# 数据库文件路径db_file_path = r'your/mdb/file/path.mdb'# 使用pyodbc建立连接conn = pyodbc.connect(rf'Driver={{Microsoft Access Driver (*.mdb, *.accdb)}};DBQ={db_file_path};')query = """ SELECT * FROM 表名 WHERE 字段 LIKE 'info'; """# 使用pandas 读取df = pd.read_sql_query(query, conn)
三、Access 连接字符串(参考)
# ODBC 标准安全策略 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;# 工作组 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;# 独占模式 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=;# 管理员模式 如果您需要在程序中使用 CREATE USER, CREATE GROUP, ADD USER, GRANT, REVOKE 和DEFAULTS等命令,您就需要使用此连接字符串。 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;ExtendedAnsiSQL=1;# OLE DB, OleDbConnection (.NET) 标准安全策略 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;//使用数据库密码 如果您的Access数据库设置了密码,您就需要参照如下连接字符串将密码写入后才能够正常使用。 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;# 工作组(系统数据库) Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;# 工作组(系统数据库)并且制定用户名和密码 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;User ID=myUsername;Password=myPassword;
附:[数据库连接字符串] Access 连接字符串
//ODBC 标准安全策略 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;//工作组 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;//独占模式 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=;//管理员模式 如果您需要在程序中使用 CREATE USER, CREATE GROUP, ADD USER, GRANT, REVOKE 和DEFAULTS等命令,您就需要使用此连接字符串。 Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;ExtendedAnsiSQL=1;//OLE DB, OleDbConnection (.NET) 标准安全策略 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;//使用数据库密码 如果您的Access数据库设置了密码,您就需要参照如下连接字符串将密码写入后才能够正常使用。 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;//工作组(系统数据库) Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;//工作组(系统数据库)并且制定用户名和密码 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase
个人推荐pyodbc,简单。
提示:这里对所经历的坑进行记录,方便查阅。