pyDAL一个python的ORM(4) pyDAL查询操作

2023-12-29 13:23:27

1?、简单查询

?rows = db(db.person.dept == 'marketing').select(db.person.id, db.person.name, db.person.dept)

?rows = db(db.person.dept == 'marketing').select()

?rows = db(db.person.dept == 'marketing').select(db.person.ALL)

?rows = db().select(db.person.ALL) / db(db.person).select()等于 select * from person

Rows(或者称为一个set)是个数据集,不是一条数据记录,可以用'标号'去访问其中一个记录,传统SQL也需要游标去访问各个记录

record = rows[0]

2、简单的数据遍历

我们通常使用for循环变量rows数据集

for? record? in? rows:??????????????????????????

????? .....

3、获取某条记录的某字段值

访问到具体字段值有3种方法:

方法1:

record0_name = record.name

方法2:

record0_name = record ['name']

方法3:

record0_name = record ['person.name']

多表连接查询得到的数据集,必须采用方式3,需要同时给定出明确的 “表名+字段名”,

相关内容后续会详细说明:

4、first() last()

first() last()方法用于rows查询结果中获取第一个和最后一个数据记录

record_first?= rows.first()

record_last = rows.last()

db(db.person.id == '001').select() 主键直接查,我们知道结果虽然只有一个数据,但是数据结构上,他还是个rows数据集,我们可以这样:

record = db(db.person.id == '001').select().first()

我们这样写些行吗?

record = db(db.person.id == '001').select()[0]

这样写稍微有些问题,因为如果查询结果为空就会 抛出异常报错

5、?多条件的组合

(1)AND逻辑

rows = db((db.person.dept == 'marketing') & (db.person.name == 'allen' ) ).select()

(2)OR逻辑

rows = db((db.person.dept == 'marketing') | (db.person.dept == 'finance') ).select()

(3)混合逻辑组合(注意括号)

rows = db?(db.person.name == 'allen' ) &

????????????????? ? ?((db.person.dept == 'marketing')?| (db.person.dept == 'finance'))? ?).select()

rows = db ((db.person.name == 'allen') | (db.person.name == 'lily') )&

? ? ? ? ? ? ? ? ? ? (?(db.person.dept == 'marketing') | (db.person.dept == 'finance') )? ).select()

文章来源:https://blog.csdn.net/u010018782/article/details/135285065
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。