python連接access數(shù)據(jù)庫兩種方式總結(jié)
前言
記錄python中access兩種連接方式
一、sqlalchemy連接access
sqlalchemy-access方言版本連接access數(shù)據(jù)庫
1.引入庫
代碼如下(示例):
pip install sqlalchemy-access
2.連接
代碼如下(示例):
import urllib
from sqlalchemy import create_engine
connection_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:#讀取數(shù)據(jù)庫
df_result = pd.read_sql_query(query,engine)
with new_engine.connect() as con:#寫入新數(shù)據(jù)庫
df_result.to_sql(table_name, con, if_exists='replace', index=False)二、pyodbc連接access
利用pyodbc模塊進行連接
1.引入庫
代碼如下(示例):
pip install pyodbc
2.連接
代碼如下(示例):
import pyodbc
import pandas as pd
# 數(shù)據(jù)庫文件路徑
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=;
//使用數(shù)據(jù)庫密碼 如果您的Access數(shù)據(jù)庫設(shè)置了密碼,您就需要參照如下連接字符串將密碼寫入后才能夠正常使用。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;
# 工作組(系統(tǒng)數(shù)據(jù)庫)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;
# 工作組(系統(tǒng)數(shù)據(jù)庫)并且制定用戶名和密碼
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;User ID=myUsername;Password=myPassword;
附:[數(shù)據(jù)庫連接字符串] 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=;
//使用數(shù)據(jù)庫密碼 如果您的Access數(shù)據(jù)庫設(shè)置了密碼,您就需要參照如下連接字符串將密碼寫入后才能夠正常使用。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;
//工作組(系統(tǒng)數(shù)據(jù)庫)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;
//工作組(系統(tǒng)數(shù)據(jù)庫)并且制定用戶名和密碼
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase個人推薦pyodbc,簡單。
提示:這里對所經(jīng)歷的坑進行記錄,方便查閱。
到此這篇關(guān)于python連接access數(shù)據(jù)庫兩種方式總結(jié)的文章就介紹到這了,更多相關(guān)python連接access數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django重裝mysql后啟動報錯:No module named ‘MySQLdb’的解決方法
這篇文章主要給大家介紹了關(guān)于Django重裝mysql后啟動報錯:No module named ‘MySQLdb’的解決方法,分享出來,對同樣遇到這個問題的朋友們一個參考學(xué)習(xí),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
python opencv3實現(xiàn)人臉識別(windows)
這篇文章主要為大家詳細介紹了python opencv3實現(xiàn)人臉識別程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
python3.8+django2+celery5.2.7環(huán)境準備(python測試開發(fā)django)
這篇文章主要介紹了python測試開發(fā)django之python3.8+django2+celery5.2.7環(huán)境準備工作,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
python中__new__和__init__的實現(xiàn)
在Python中,每個對象都有兩個特殊的方法__new__和__init__,本文主要介紹了python中__new__和__init__的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-05-05
python pandas模塊進行數(shù)據(jù)分析
Python的Pandas模塊是一個強大的數(shù)據(jù)處理工具,可以用來讀取、處理和分析各種數(shù)據(jù),本文主要介紹了python pandas模塊進行數(shù)據(jù)分析,具有一定的參考價值,感興趣的可以了解一下2024-01-01

