当前位置: 主页 > Python语言

python 小型数据库-python库是什么

发布时间:2023-02-08 14:11   浏览次数:次   作者:佚名

第13章数据库支持 13.1 Python数据库API

DB API2.0(标准数据库API)

1.全局变量

使用的 apilevel API 版本

threadsafety 线程安全度

SQL 查询中的 paramstyle 参数样式

apilevel (API level) 是一个字符串常量,指示所使用的 API 版本

此变量的值为“1.0”或“2.0”

threadsafety(线程安全度)是0-3的整数。

0:线程不能共享模块 2:线程可以共享模块和连接,但不能共享游标

如果您不使用线程,请忘记它。

paramstyle(参数样式) 'format'表示标准的字符串格式设置方法python 小型数据库

'pyformat' 表示扩展格式编码

'qmark' 表示使用问号

'numeric' 表示使用 :1 或 :2 的形式来表示字段

'named' 表示使用 :foobar 的形式来表示字段

2、异常

DB API 定义了各种异常来处理错误。

StandardError 所有异常的超类

发生非致命问题时引发警告 StandardError

错误 StandardError 所有错误条件的超类

InterfaceError Error 与接口相关的错误(而不是数据库)

DatabaseError 数据库相关错误的错误超类

DataError DatabaseError 数据相关的问题,比如值超出合法范围

python库是什么_python库下载_python 小型数据库

OperationalError DatabaseError 数据库操作中的内部错误

IntegrityError DatabaseError 关系完整性已被破坏,例如键未通过检查

InternalError DatabaseError 数据库内部错误,例如游标无效

ProgrammingError DatabaseError 用户编程错误,如找不到数据库表

NotSupportedError DatabaseError 请求不支持的功能python 小型数据库,例如回滚

3.连接和游标

要使用底层数据库系统,您必须首先连接到它。

使用函数 connect 进行连接。

连接常用参数:

参数名称描述是否可选

dsn 数据源名称,具体含义因数据库而异

用户名是

密码 用户密码是

主机主机名是

database 数据库名称是

connect 返回一个连接对象。

连接对象支持方法:

close() 关闭连接对象。之后,连接对象及其游标将不可用

commit() 提交一个未提交的事务——如果支持的话; 否则什么都不做

rollback() 回滚未提交的事务(可能不可用)

cursor() 返回连接的游标对象

#光标对象

python 小型数据库_python库下载_python库是什么

使用游标执行 SQL 查询并查看结果

游标支持的方法:

callproc(name[, params]) 用指定的参数调用指定的数据库过程(可选)

close() 关闭游标。关闭后游标不可用

execute(oper[, params]) 执行 SQL 操作 - 可能指定参数

executemany(oper, pseq) 多次执行指定的SQL操作,每次以序列中的一组参数

fetchone() 依次获取查询结果中的下一行; 如果没有更多行,则返回 None

fetchmany([size]) 检索查询结果中的多行,其中参数size的值默认为arraysize

fetchall() 获取所有剩余的行作为序列序列

nextset() 跳转到下一个结果集,该方法可选

setinputsizes(sizes) 用于预定义参数的内存区域

setoutputsize(size[, col]) 设置用于检索大量数据的缓冲区大小

游标的属性

结果列描述的描述序列(只读)

rowcount 结果包含的行数(只读)

arraysize fetchmany返回的行数,默认为1

4.类型

DB API 定义了一些构造函数和常量来提供特殊的类型和值。

Date(year, month, day) 创建一个包含日期值的对象

Time(hour, minute, second) 创建一个包含时间值的对象

Timestamp(y, mon, d, h, min, s) 创建一个包含时间戳的对象

DateFromTicks(ticks) 根据自纪元以来经过的秒数创建一个包含日期值的对象

python库是什么_python库下载_python 小型数据库

TimeFromTicks(ticks) 创建一个包含时间值的对象,该对象基于自纪元以来经过的秒数

imestampFromTicks(ticks) 根据纪元以来经过的秒数创建一个包含时间戳的对象

Binary(string) 创建一个包含二进制字符串值的对象

STRING 描述了一个基于字符串的列(例如 CHAR)

BINARY 描述二进制列(例如 LONG 或 RAW)

NUMBER 描述了一个数字列

DATETIME 描述日期/时间列

ROWID 描述行 ID 列

2.SQLite 和 PySQLite

SQLite 是一个小型的、本地可运行的数据库。

SQLite从python2.5开始就内置了

1.开始

进口:

导入sqlite3

建立连接:

conn = sqlite3.connect('somedatabase.db')

获取光标:

诅咒=连接。 光标()

得到的游标可以用于SQL查询。

查询执行后,如果修改了数据,需要提交修改后才能保存。

conn.commit()

紧密联系

python库下载_python库是什么_python 小型数据库

康涅狄格州关闭()

2.例子

1.创建并填充数据库表

导入sqlite3

定义转换(值):

if value.startswith('~'):

返回值。 剥离('〜')

如果不是值:

值 = '0'

返回浮动(值)

conn = sqlite3.connect('food.db')

诅咒=连接。 光标()

诅咒。 执行('''

创建表食物(

id 文本主键,

描述文本,

水漂浮,

千卡浮动,

蛋白质漂浮物,

脂肪浮动,

灰漂浮,

碳水化合物浮动,

python 小型数据库_python库下载_python库是什么

纤维漂浮物,

糖浮动

)

''')

query = 'INSERT INTO food VALUES (?,?,?,?,?,?,?,?,?,?)'

field_count = 10

对于打开的行('ABBREV.txt'):

字段 = 行。 分裂('^')

vals = [convert(f) for f in fields[:field_count]]

诅咒。 执行(查询,值)

conn.commit()

康涅狄格州关闭()

2.搜索和处理结果

导入 sqlite3,sys

conn = sqlite3.connect('food.db')

诅咒=连接。 光标()

query = 'SELECT * FROM food WHERE' + sys.argv[1]

打印(查询)

诅咒。 执行(查询)

names = [f[0] for f in curs.description]

对于 curs.fetchall() 中的行:

对于 zip 中的对(名称,行)L

print('{}: {}'.format(*pair))

打印()