HarmonyOSNext 端云一体化(4)
HarmonyOSNext 端云一体化(4)
在上一章节我们讲了数据库数据表的一些基本操作。如query、upsert、delete和calculateQuery。这一章节主要来讲解各种查询条件操作。如 查询班级年龄大于30的同学等。
查询条件解释
谓词,用来代替或者展示其客体性质、特征或者客体之间关系的词项。
这些查询条件在端云一体中解释中叫做谓词。云数据库中提供丰富的谓词查询来构建查询条件。根据谓词查询方法构造自己的
DatabaseQuery对象。
查询条件谓词一览
关键字 | 说明 |
---|---|
equalTo | 表示等于的条件判断,用于查询中筛选出与指定值相等的数据 |
notEqualTo | 表示不等于的条件判断,筛选出与指定值不相等的数据 |
beginsWith | 表示以某个值开头,用于查询开头匹配特定字符串的数据 |
endsWith | 表示以某个值结尾,用于查询结尾匹配特定字符串的数据 |
contains | 表示包含某个值,用于查询包含特定字符串的数据 |
greaterThan | 表示大于,用于数值类型数据的比较,筛选出大于指定值的数据 |
greaterThanOrEqualTo | 表示大于或等于,筛选出大于或等于指定值的数据 |
lessThan | 表示小于,用于数值类型数据的比较,筛选出小于指定值的数据 |
lessThanOrEqualTo | 表示小于或等于,筛选出小于或等于指定值的数据 |
in | 用于判断某个值是否在指定的集合内,常用于查询符合多个值中某一个的数据 |
isNull | 用于判断某个字段是否为空值 |
isNotNull | 用于判断某个字段是否不为空值 |
orderByAsc | 按升序排列,用于对查询结果按照指定字段进行从小到大的排序 |
orderByDesc | 按降序排列,用于对查询结果按照指定字段进行从大到小的排序 |
limit | 限制查询结果返回的数量 |
beginGroup | 开始一个逻辑分组,用于将多个条件组合在一起作为一个逻辑单元 |
endGroup | 结束一个逻辑分组 |
or | 逻辑或,用于连接多个条件,只要其中一个条件满足则整个逻辑表达式为真 |
and | 逻辑与,用于连接多个条件,只有所有条件都满足时整个逻辑表达式才为真 |
谓词使用示例
equalTo 查询id为20的数据
this.condition.equalTo("id", 20)
notEqualTo 查询id不等于20的数据
this.condition.notEqualTo("id", 20)
beginsWith 查询name字段以b开头的数据
this.condition.beginsWith("name", "b")
endsWith 查询name字段以k结尾的数据
this.condition.endsWith("name", "k")
contains 查询name字段包含k的数据
this.condition.contains("name", "k")
greaterThan 查询price字段大于30的数据
this.condition.greaterThan("price", 30)
greaterThanOrEqualTo 查询price字段大于或者等于30的数据
this.condition.greaterThanOrEqualTo("price", 30)
lessThan 查询price字段小于30的数据
this.condition.lessThan("price", 30)
lessThanOrEqualTo 查询price字段小于或者等于30的数据
this.condition.lessThanOrEqualTo("price", 30)
in 查询name字段包含在["book","aaaa","bbbb"]的中数据
this.condition.in("name", ["book", "aaaa", "bbbb"])
isNull 查询name字段是否为null
this.condition.isNull("name")
isNotNull 查询name字段是否非null
this.condition.isNotNull("name")
orderByAsc 根据id,进行升序
this.condition.orderByAsc("id")
orderByDesc 根据id,进行降序
this.condition.orderByDesc("id")
limit 查询2条数据,从第1条开始
this.condition.limit(2, 1)
or 逻辑或,查询name=book 或者 price>30的数据
this.condition.equalTo("name", "book").or().greaterThan('price', 30)
and 逻辑与,查询name=book123 并且 price>30的数据
this.condition.equalTo("name", "book123").and().greaterThan('price', 30)
beginGroup 和 endGroup 表示一对逻辑分组
// 条件1: name=book并且price>30
// 条件2: id=20或者price>30
// 需求: 查询 条件1 和 条件2 同时满足的数据
this.condition
.beginGroup()
.equalTo('name', 30)
.and()
.greaterThan('price', 30)
.endGroup()
.and()
.beginGroup()
.equalTo('id', 20)
.or()
.greaterThan('price', 30)
.endGroup();
加强
上面的谓词,也是根据实际语义搭配一起使用。比如:查询name=book的前2条数据
总结
本章主要介绍了HarmonyOSNext端云一体化中的数据库查询条件操作:
-
介绍了查询条件中的谓词概念,它用于展示或描述数据的性质、特征或关系
-
详细列举了常用的查询谓词,包括:
- 比较类:equalTo、notEqualTo、greaterThan、lessThan等
- 字符串匹配:beginsWith、endsWith、contains
- 空值判断:isNull、isNotNull
- 集合操作:in
- 排序限制:orderByAsc、orderByDesc、limit
- 逻辑组合:and、or、beginGroup、endGroup
-
通过具体示例展示了各种谓词的使用方法,包括基本查询和复杂的组合查询
-
说明了谓词可以根据实际需求灵活组合使用,以实现更复杂的查询功能
如果你兴趣想要了解更多的鸿蒙应用开发细节和最新资讯,欢迎在评论区留言或者私信或者看我个人信息,可以加入技术交流群。