在上一章节我们讲了数据库数据表的一些基本操作。如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 | 逻辑与,用于连接多个条件,只有所有条件都满足时整个逻辑表达式才为真 |
this.condition.equalTo("id", 20)
this.condition.notEqualTo("id", 20)
this.condition.beginsWith("name", "b")
this.condition.endsWith("name", "k")
this.condition.contains("name", "k")
this.condition.greaterThan("price", 30)
this.condition.greaterThanOrEqualTo("price", 30)
this.condition.lessThan("price", 30)
this.condition.lessThanOrEqualTo("price", 30)
this.condition.in("name", ["book", "aaaa", "bbbb"])
this.condition.isNull("name")
this.condition.isNotNull("name")
this.condition.orderByAsc("id")
this.condition.orderByDesc("id")
this.condition.limit(2, 1)
this.condition.equalTo("name", "book").or().greaterThan('price', 30)
this.condition.equalTo("name", "book123").and().greaterThan('price', 30)
// 条件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端云一体化中的数据库查询条件操作: