- TinyDB 教程
- TinyDB - 首页
- TinyDB - 简介
- TinyDB - 环境设置
- TinyDB - 插入数据
- TinyDB - 获取数据
- TinyDB - 更新数据
- TinyDB - 删除数据
- TinyDB - 查询
- TinyDB - 搜索
- TinyDB - where 子句
- TinyDB - Exists() 查询
- TinyDB - Matches() 查询
- TinyDB - Test() 查询
- TinyDB - Any() 查询
- TinyDB - All() 查询
- TinyDB - one_of() 查询
- TinyDB - 逻辑非
- TinyDB - 逻辑与
- TinyDB - 逻辑或
- TinyDB - 数据查询处理
- TinyDB - 修改数据
- TinyDB - Upsert 数据
- TinyDB - 获取数据
- TinyDB - 文档 ID
- TinyDB - 表格
- TinyDB - 默认表格
- TinyDB - 查询缓存
- TinyDB - 存储类型
- TinyDB - 中间件
- TinyDB - 扩展 TinyDB
- TinyDB - 扩展
- TinyDB 有用资源
- TinyDB - 快速指南
- TinyDB - 有用资源
- TinyDB - 讨论
TinyDB - 查询
TinyDB 拥有丰富的查询集。我们有多种构建查询的方法:第一种方法类似于 ORM 工具的语法,第二种方法是使用“where”子句的传统方法。
在本章中,让我们了解这两种在 TinyDB 数据库中构建查询的方法。
第一种方法:导入查询
第一种方法类似于 ORM 工具的语法,我们首先需要在命令提示符中导入查询。导入后,我们可以使用查询对象操作 TinyDB 数据库。语法如下:
from tinydb import Query student = Query()
这里,“student”是我们的数据库名称。在示例中,我们将使用以下student数据库。
[ { "roll_number":1, "st_name":"elen", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":2, "st_name":"Ram", "mark":[ 250, 280 ], "subject":[ "TinyDB", "MySQL" ], "address":"delhi" }, { "roll_number":3, "st_name":"kevin", "mark":[ 180, 200 ], "subject":[ "oracle", "sql" ], "address":"keral" }, { "roll_number":4, "st_name":"lakan", "mark":200, "subject":"MySQL", "address":"mumbai" }, { "roll_number":5, "st_name":"karan", "mark":275, "subject":"TinyDB", "address":"benglore" } ]
示例
以下是从student数据库中检索数据的查询,其中学生的roll_no小于3:
>>> db.search(Query().roll_number < 3)
或者,
>>> student = Query() >>> db.search(student.roll_number < 3)
上述搜索查询将产生以下结果:
[ { "roll_number":1, "st_name":"elen", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":2, "st_name":"Ram", "mark":[ 250, 280 ], "subject":[ "TinyDB", "MySQL" ], "address":"delhi" } ]
有时文件名不是有效的 Python 标识符。在这种情况下,我们将无法访问该字段。对于这种情况,我们需要切换到字典访问表示法,如下所示:
student = Query(); # Invalid Python syntax db.search(student.security-code == 'ABCD') # Use the following dict access notation db.search(student['security-code'] == 'ABCD')
第二种方法:使用“where”子句
第二种方法是使用“where”子句构建查询的传统方法。语法如下:
from tinydb import where db.search(where('field') == 'value')
示例
TinyDB where 子句用于subject字段:
db.search(where('subject') == 'MySQL')
上述查询将产生以下输出:
[{ "roll_number":4, "st_name":"lakan", "mark":200, "subject":"MySQL", "address":"mumbai" }]
广告