用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。