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

相关推荐
小马哥编程40 分钟前
【iSAQB软件架构】架构决策记录-ADR
数据库·架构·系统架构·设计规范
萧鼎1 小时前
深度探索 Py2neo:用 Python 玩转图数据库 Neo4j
数据库·python·neo4j
华子w9089258591 小时前
基于 Python Django 和 Spark 的电力能耗数据分析系统设计与实现7000字论文实现
python·spark·django
m0_653031362 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE MySQL版)
运维·数据库·腾讯云
power 雀儿2 小时前
集群聊天服务器---MySQL数据库的建立
服务器·数据库·mysql
Rockson2 小时前
使用Ruby接入实时行情API教程
javascript·python
Tipriest_3 小时前
Python关键字梳理
python·关键字·keyword
骑着王八撵玉兔3 小时前
【性能优化与架构调优(二)】高性能数据库设计与优化
数据库·性能优化·架构
im_AMBER4 小时前
学习日志05 python
python·学习
大虫小呓4 小时前
Python 处理 Excel 数据 pandas 和 openpyxl 哪家强?
python·pandas