sqlite-utils 3.36使用体会(三)查询

我真不理解,为什么sqlite-utils的查询操作是如此之简单
它有查询表、查询视图、查询记录的操作。

查询记录

通常我们使用的查询记录,格式是这样的

for row in db["ath"].rows:
	print(row)

这个相当于做了一个 select * from ath
如果要加上where,把row改为rows_where
那就是

for row in db["ath"].rows_where("age > ?",[20]):
# 或
for row in db["ath"].rows_where("age > :age",{"age":20}):

如果只要显示某姓名和年龄列

for row in db["ath"].rows_where(select='name, age'):

如果按年龄排序

for row in db["ath"].rows_where(order_by="age"):

还可以加入limit=和offset=,也是写在where中,下面写个组合

for row in db["ath"].rows_where("age > 20 ",order_by="age desc",limit=1.offset=20):

根据ID取值

try:
    row = db["ath"].get(5)
except NotFoundError:
    print("不存在主键为5的记录")

但是这个要注意,如果ID不存在,是会抛出异常的。虽然可以写try,但我想不通,什么时候会只知道ID来查询记录。

统计

这个比较简单,就是count和count_where,下面这行看懂就都懂了。

db["ath"].count_where("age > ?", [20])

还有一些查询是通过最近的插入操作才能做的,暂时不在这里写了。

另外,如果要查询关联表数据,多对多表的数据,我看了下,好像只能用SQL语句写,sqlite-utils没有独立的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值