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

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()

相关推荐
PengShuaiD522 分钟前
【数据库维护】如何解决Clickhouse数据库Too many parts报错
数据库·clickhouse
魔道不误砍柴功25 分钟前
Java中的Stream API:从入门到实战
java·windows·python
xinghuitunan30 分钟前
时间转换(acwing)c/c++/java/python
java·c语言·c++·python
TechNomad1 小时前
C++访问MySQL数据库
数据库·c++·mysql
tekin1 小时前
Python 高级数据结构操作全解析:从理论到实践
数据结构·python·集合set·高级数据结构·集合操作·队列操作·堆操作
关关钧1 小时前
【R语言】绘图
开发语言·python·r语言
数据的世界011 小时前
Deepin(Linux)安装MySQL指南
数据库·mysql
m0_748248021 小时前
爬虫自动化(DrissionPage)
爬虫·python·自动化
量化投资技术2 小时前
【量化科普】Arbitrage,套利
python·量化交易·量化·量化投资·qmt·miniqmt
量化投资技术2 小时前
【量化科普】Liquidity,流动性
python·量化交易·量化·量化投资·qmt·miniqmt