用法:
sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri])
打開與 SQLite 數據庫文件
database
的連接。默認情況下返回Connection
對象,除非給出自定義factory
。database
是一個 path-like 對象,給出要打開的數據庫文件的路徑名(絕對或相對於當前工作目錄)。您可以使用":memory:"
打開與駐留在 RAM 中而不是磁盤中的數據庫的數據庫連接。當一個數據庫被多個連接訪問,並且其中一個進程修改了數據庫時,SQLite 數據庫將被鎖定,直到該事務被提交。
timeout
參數指定連接應等待鎖消失多長時間,直到引發異常。超時參數的默認值為 5.0(五秒)。對於
isolation_level
參數,請參見Connection
對象的isolation_level
屬性。SQLite 本身隻支持 TEXT、INTEGER、REAL、BLOB 和 NULL 類型。如果您想使用其他類型,您必須自己添加對它們的支持。這
detect_types
參數和使用自定義轉換器用module-level注冊register_converter()
函數讓您輕鬆做到這一點。detect_types
默認為 0(即關閉,不檢測類型),您可以將其設置為PARSE_DECLTYPES
和PARSE_COLNAMES
的任意組合以打開類型檢測。由於 SQLite 行為,即使設置了detect_types
參數,也無法檢測生成字段的類型(例如max(data)
)。在這種情況下,返回的類型是str
。默認情況下,
check_same_thread
是True
,隻有創建線程可以使用連接。如果設置False
,則返回的連接可以在多個線程之間共享。當使用具有相同連接的多個線程時,寫入操作應由用戶序列化以避免數據損壞。默認情況下,
sqlite3
模塊使用其Connection
類進行連接調用。但是,您可以通過為factory
參數提供您的類來繼承Connection
類並使connect()
使用您的類。有關詳細信息,請參閱本手冊的 SQLite 和 Python 類型部分。
sqlite3
模塊在內部使用語句緩存來避免 SQL 解析開銷。如果要顯式設置為連接緩存的語句數,可以設置cached_statements
參數。當前實現的默認設置是緩存 100 條語句。如果
uri
是True
,database
被解釋為URI帶有文件路徑和可選的查詢字符串。方案部分must
是"file:"
.路徑可以是相對或絕對文件路徑。查詢字符串允許我們將參數傳遞給 SQLite。一些有用的 URI 技巧包括:# Open a database in read-only mode. con = sqlite3.connect("file:template.db?mode=ro", uri=True) # Don't implicitly create a new database file if it does not already exist. # Will raise sqlite3.OperationalError if unable to open a database file. con = sqlite3.connect("file:nosuchdb.db?mode=rw", uri=True) # Create a shared named in-memory database. con1 = sqlite3.connect("file:mem1?mode=memory&cache=shared", uri=True) con2 = sqlite3.connect("file:mem1?mode=memory&cache=shared", uri=True) con1.executescript("create table t(t); insert into t values(28);") rows = con2.execute("select * from t").fetchall()
有關此函數的更多信息,包括已識別參數的列表,可以在 SQLite URI documentation 中找到。
使用參數
database
引發審計事件sqlite3.connect
。使用參數
connection_handle
引發審計事件sqlite3.connect/handle
。在 3.4 版中更改:添加了
uri
範圍。在 3.7 版中更改:
database
現在也可以是path-like 對象,不僅僅是一個字符串。在 3.10 版中更改:添加了
sqlite3.connect/handle
審計事件。
相關用法
- Python sqlite3.complete_statement用法及代碼示例
- Python sqlite3.Connection.text_factory用法及代碼示例
- Python sqlite3.Connection.enable_load_extension用法及代碼示例
- Python sqlite3.Connection.iterdump用法及代碼示例
- Python sqlite3.Cursor.executescript用法及代碼示例
- Python sqlite3.Connection.create_collation用法及代碼示例
- Python sqlite3.threadsafety用法及代碼示例
- Python sqlite3.Connection.row_factory用法及代碼示例
- Python sqlite3.Connection.create_function用法及代碼示例
- Python sqlite3.Connection.create_aggregate用法及代碼示例
- Python sqlite3.Cursor.connection用法及代碼示例
- Python sqlite3.Cursor.executemany用法及代碼示例
- Python sqlite3.Connection.backup用法及代碼示例
- Python math sqrt()用法及代碼示例
- Python sklearn.cluster.MiniBatchKMeans用法及代碼示例
- Python scipy.ndimage.binary_opening用法及代碼示例
- Python scipy.signal.windows.tukey用法及代碼示例
- Python scipy.stats.mood用法及代碼示例
- Python str.isidentifier用法及代碼示例
- Python sklearn.metrics.fbeta_score用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 sqlite3.connect。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。