• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# DataAbility 谓词
2
3DataAbility 谓词用于构造关系型数据库的谓词,提供用于实现不同查询方法的谓词。
4
5> **说明:**
6>
7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9
10## 导入模块
11
12```js
13import dataAbility from '@ohos.data.dataAbility';
14```
15
16
17## dataAbility.createRdbPredicates
18
19
20createRdbPredicates(name: string, dataAbilityPredicates: DataAbilityPredicates): rdb.RdbPredicates
21
22
23从DataAbilityPredicates对象创建RdbPredicates对象。
24
25**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core26
27**参数:**
28
29  | 参数名 | 类型 | 必填 | 说明 |
30  | -------- | -------- | -------- | -------- |
31  | name | string | 是 | 数据库表中的表名。 |
32  | dataAbilityPredicates | [DataAbilityPredicates](#dataabilitypredicates) | 是 | DataAbility谓词。 |
33
34**返回值:**
35  | 类型 | 说明 |
36  | -------- | -------- |
37  | rdb.[RdbPredicates](js-apis-data-rdb.md#rdbpredicates) | 返回RdbPredicates对象。 |
38
39**示例:**
40  ```js
41  let dataAbilityPredicates = new dataAbility.DataAbilityPredicates()
42  dataAbilityPredicates.equalTo("NAME", "Rose")
43  let predicates = dataAbility.createRdbPredicates("EMPLOYEE", dataAbilityPredicates)
44  ```
45
46
47## DataAbilityPredicates
48
49提供用于实现不同查询方法的谓词。
50
51
52### equalTo
53
54
55equalTo(field: string, value: ValueType): DataAbilityPredicates
56
57
58配置谓词以匹配数据类型为ValueType且值等于指定值的字段。
59
60**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core61
62**参数:**
63  | 参数名 | 类型 | 必填 | 说明 |
64  | -------- | -------- | -------- | -------- |
65  | field | string | 是 | 数据库表中的列名。 |
66  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
67
68**返回值:**
69  | 类型 | 说明 |
70  | -------- | -------- |
71  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
72
73**示例:**
74  ```js
75  dataAbilityPredicates.equalTo("NAME", "lisi")
76  ```
77
78
79### notEqualTo
80
81
82notEqualTo(field: string, value: ValueType): DataAbilityPredicates
83
84
85配置谓词以匹配数据类型为ValueType且值不等于指定值的字段。
86
87**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core88
89**参数:**
90  | 参数名 | 类型 | 必填 | 说明 |
91  | -------- | -------- | -------- | -------- |
92  | field | string | 是 | 数据库表中的列名。 |
93  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
94
95**返回值:**
96  | 类型 | 说明 |
97  | -------- | -------- |
98  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
99
100**示例:**
101  ```js
102  dataAbilityPredicates.notEqualTo("NAME", "lisi")
103  ```
104
105
106### beginWrap
107
108
109beginWrap(): DataAbilityPredicates
110
111
112向谓词添加左括号。
113
114**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core115
116**返回值:**
117  | 类型 | 说明 |
118  | -------- | -------- |
119  | [DataAbilityPredicates](#dataabilitypredicates) | 返回带有左括号的DataAbility谓词。 |
120
121**示例:**
122  ```js
123  dataAbilityPredicates.equalTo("NAME", "lisi")
124      .beginWrap()
125      .equalTo("AGE", 18)
126      .or()
127      .equalTo("SALARY", 200.5)
128      .endWrap()
129  ```
130
131
132### endWrap
133
134
135endWrap(): DataAbilityPredicates
136
137
138向谓词添加右括号。
139
140**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core141
142**返回值:**
143  | 类型 | 说明 |
144  | -------- | -------- |
145  | [DataAbilityPredicates](#dataabilitypredicates) | 返回带有右括号的DataAbility谓词。 |
146
147**示例:**
148  ```js
149  dataAbilityPredicates.equalTo("NAME", "lisi")
150      .beginWrap()
151      .equalTo("AGE", 18)
152      .or()
153      .equalTo("SALARY", 200.5)
154      .endWrap()
155  ```
156
157
158### or
159
160
161or(): DataAbilityPredicates
162
163
164将或条件添加到谓词中。
165
166**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core167
168**返回值:**
169  | 类型 | 说明 |
170  | -------- | -------- |
171  | [DataAbilityPredicates](#dataabilitypredicates) | 返回带有或条件的DataAbility谓词。 |
172
173**示例:**
174  ```js
175  dataAbilityPredicates.equalTo("NAME", "Lisa")
176      .or()
177      .equalTo("NAME", "Rose")
178  ```
179
180
181### and
182
183
184and(): DataAbilityPredicates
185
186
187将和条件添加到谓词中。
188
189**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core190
191**返回值:**
192  | 类型 | 说明 |
193  | -------- | -------- |
194  | [DataAbilityPredicates](#dataabilitypredicates) | 返回带有和条件的DataAbility谓词。 |
195
196**示例:**
197  ```js
198  dataAbilityPredicates.equalTo("NAME", "Lisa")
199      .and()
200      .equalTo("SALARY", 200.5)
201  ```
202
203
204### contains
205
206
207contains(field: string, value: string): DataAbilityPredicates
208
209
210配置谓词以匹配数据类型为string且value包含指定值的字段。
211
212**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core213
214**参数:**
215  | 参数名 | 类型 | 必填 | 说明 |
216  | -------- | -------- | -------- | -------- |
217  | field | string | 是 | 数据库表中的列名。 |
218  | value | string | 是 | 指示要与谓词匹配的值。 |
219
220**返回值:**
221  | 类型 | 说明 |
222  | -------- | -------- |
223  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
224
225**示例:**
226  ```js
227  dataAbilityPredicates.contains("NAME", "os")
228  ```
229
230
231### beginsWith
232
233
234beginsWith(field: string, value: string): DataAbilityPredicates
235
236
237配置谓词以匹配数据类型为string且值以指定字符串开头的字段。
238
239**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core240
241**参数:**
242  | 参数名 | 类型 | 必填 | 说明 |
243  | -------- | -------- | -------- | -------- |
244  | field | string | 是 | 数据库表中的列名。 |
245  | value | string | 是 | 指示要与谓词匹配的值。 |
246
247**返回值:**
248  | 类型 | 说明 |
249  | -------- | -------- |
250  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
251
252**示例:**
253  ```js
254  dataAbilityPredicates.beginsWith("NAME", "os")
255  ```
256
257
258### endsWith
259
260
261endsWith(field: string, value: string): DataAbilityPredicates
262
263
264配置谓词以匹配数据类型为string且值以指定字符串结尾的字段。
265
266**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core267
268**参数:**
269  | 参数名 | 类型 | 必填 | 说明 |
270  | -------- | -------- | -------- | -------- |
271  | field | string | 是 | 数据库表中的列名。 |
272  | value | string | 是 | 指示要与谓词匹配的值。 |
273
274**返回值:**
275  | 类型 | 说明 |
276  | -------- | -------- |
277  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
278
279**示例:**
280  ```
281  dataAbilityPredicates.endsWith("NAME", "se")
282  ```
283
284
285### isNull
286
287
288isNull(field: string): DataAbilityPredicates
289
290
291配置谓词以匹配值为null的字段。
292
293**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core294
295**参数:**
296  | 参数名 | 类型 | 必填 | 说明 |
297  | -------- | -------- | -------- | -------- |
298  | field | string | 是 | 数据库表中的列名。 |
299
300**返回值:**
301  | 类型 | 说明 |
302  | -------- | -------- |
303  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
304
305**示例:**
306  ```js
307  dataAbilityPredicates.isNull("NAME")
308  ```
309
310
311### isNotNull
312
313
314isNotNull(field: string): DataAbilityPredicates
315
316
317配置谓词以匹配值不为null的指定字段。
318
319**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core320
321**参数:**
322  | 参数名 | 类型 | 必填 | 说明 |
323  | -------- | -------- | -------- | -------- |
324  | field | string | 是 | 数据库表中的列名。 |
325
326**返回值:**
327  | 类型 | 说明 |
328  | -------- | -------- |
329  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
330
331**示例:**
332  ```js
333  dataAbilityPredicates.isNotNull("NAME")
334  ```
335
336
337### like
338
339
340like(field: string, value: string): DataAbilityPredicates
341
342
343配置谓词以匹配数据类型为string且值类似于指定字符串的字段。
344
345**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core346
347**参数:**
348  | 参数名 | 类型 | 必填 | 说明 |
349  | -------- | -------- | -------- | -------- |
350  | field | string | 是 | 数据库表中的列名。 |
351  | value | string | 是 | 指示要与谓词匹配的值。 |
352
353**返回值:**
354  | 类型 | 说明 |
355  | -------- | -------- |
356  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
357
358**示例:**
359  ```js
360  dataAbilityPredicates.like("NAME", "%os%")
361  ```
362
363
364### glob
365
366
367glob(field: string, value: string): DataAbilityPredicates
368
369
370配置谓词以匹配数据类型为string的指定字段。
371
372**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core373
374**参数:**
375  | 参数名 | 类型 | 必填 | 说明 |
376  | -------- | -------- | -------- | -------- |
377  | field | string | 是 | 数据库表中的列名。 |
378  | value | string | 是 | 指示要与谓词匹配的值。 |
379
380**返回值:**
381  | 类型 | 说明 |
382  | -------- | -------- |
383  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
384
385**示例:**
386  ```js
387  dataAbilityPredicates.glob("NAME", "?h*g")
388  ```
389
390
391### between
392
393
394between(field: string, low: ValueType, high: ValueType): DataAbilityPredicates
395
396
397配置谓词以匹配数据类型为ValueType且value在指定范围内的指定字段。
398
399**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core400
401**参数:**
402  | 参数名 | 类型 | 必填 | 说明 |
403  | -------- | -------- | -------- | -------- |
404  | field | string | 是 | 数据库表中的列名。 |
405  | low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
406  | high | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最大值。 |
407
408**返回值:**
409  | 类型 | 说明 |
410  | -------- | -------- |
411  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
412
413**示例:**
414  ```js
415  dataAbilityPredicates.between("AGE", 10, 50)
416  ```
417
418
419### notBetween
420
421
422notBetween(field: string, low: ValueType, high: ValueType): DataAbilityPredicates
423
424
425配置谓词以匹配数据类型为ValueType且value超出给定范围的指定字段。
426
427**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core428
429**参数:**
430  | 参数名 | 类型 | 必填 | 说明 |
431  | -------- | -------- | -------- | -------- |
432  | field | string | 是 | 数据库表中的列名。 |
433  | low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
434  | high | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最大值。 |
435
436**返回值:**
437  | 类型 | 说明 |
438  | -------- | -------- |
439  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
440
441**示例:**
442  ```js
443  dataAbilityPredicates.notBetween("AGE", 10, 50)
444  ```
445
446
447### greaterThan
448
449
450greaterThan(field: string, value: ValueType): DataAbilityPredicates
451
452
453配置谓词以匹配数据类型为ValueType且值大于指定值的字段。
454
455**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core456
457**参数:**
458  | 参数名 | 类型 | 必填 | 说明 |
459  | -------- | -------- | -------- | -------- |
460  | field | string | 是 | 数据库表中的列名。 |
461  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
462
463**返回值:**
464  | 类型 | 说明 |
465  | -------- | -------- |
466  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
467
468**示例:**
469  ```js
470  dataAbilityPredicates.greaterThan("AGE", 18)
471  ```
472
473
474### lessThan
475
476
477lessThan(field: string, value: ValueType): DataAbilityPredicates
478
479
480配置谓词以匹配数据类型为valueType且value小于指定值的字段。
481
482**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core483
484**参数:**
485  | 参数名 | 类型 | 必填 | 说明 |
486  | -------- | -------- | -------- | -------- |
487  | field | string | 是 | 数据库表中的列名。 |
488  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
489
490**返回值:**
491  | 类型 | 说明 |
492  | -------- | -------- |
493  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
494
495**示例:**
496  ```js
497  dataAbilityPredicates.lessThan("AGE", 20)
498  ```
499
500
501### greaterThanOrEqualTo
502
503
504greaterThanOrEqualTo(field: string, value: ValueType): DataAbilityPredicates
505
506
507配置谓词以匹配数据类型为ValueType且value大于或等于指定值的字段。
508
509**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core510
511**参数:**
512  | 参数名 | 类型 | 必填 | 说明 |
513  | -------- | -------- | -------- | -------- |
514  | field | string | 是 | 数据库表中的列名。 |
515  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
516
517**返回值:**
518  | 类型 | 说明 |
519  | -------- | -------- |
520  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
521
522**示例:**
523  ```js
524  dataAbilityPredicates.greaterThanOrEqualTo("AGE", 18)
525  ```
526
527
528### lessThanOrEqualTo
529
530
531lessThanOrEqualTo(field: string, value: ValueType): DataAbilityPredicates
532
533
534配置谓词以匹配数据类型为ValueType且value小于或等于指定值的字段。
535
536**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core537
538**参数:**
539  | 参数名 | 类型 | 必填 | 说明 |
540  | -------- | -------- | -------- | -------- |
541  | field | string | 是 | 数据库表中的列名。 |
542  | value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
543
544**返回值:**
545  | 类型 | 说明 |
546  | -------- | -------- |
547  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
548
549**示例:**
550  ```js
551  dataAbilityPredicates.lessThanOrEqualTo("AGE", 20)
552  ```
553
554
555### orderByAsc
556
557
558orderByAsc(field: string): DataAbilityPredicates
559
560
561配置谓词以匹配其值按升序排序的列。
562
563**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core564
565**参数:**
566  | 参数名 | 类型 | 必填 | 说明 |
567  | -------- | -------- | -------- | -------- |
568  | field | string | 是 | 数据库表中的列名。 |
569
570**返回值:**
571  | 类型 | 说明 |
572  | -------- | -------- |
573  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
574
575**示例:**
576  ```js
577  dataAbilityPredicates.orderByAsc("NAME")
578  ```
579
580
581### orderByDesc
582
583
584orderByDesc(field: string): DataAbilityPredicates
585
586
587配置谓词以匹配其值按降序排序的列。
588
589**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core590
591**参数:**
592  | 参数名 | 类型 | 必填 | 说明 |
593  | -------- | -------- | -------- | -------- |
594  | field | string | 是 | 数据库表中的列名。 |
595
596**返回值:**
597  | 类型 | 说明 |
598  | -------- | -------- |
599  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
600
601**示例:**
602  ```js
603  dataAbilityPredicates.orderByDesc("AGE")
604  ```
605
606
607### distinct
608
609
610distinct(): DataAbilityPredicates
611
612
613配置谓词以过滤重复记录并仅保留其中一个。
614
615**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core616
617**返回值:**
618  | 类型 | 说明 |
619  | -------- | -------- |
620  | [DataAbilityPredicates](#dataabilitypredicates) | 返回可用于过滤重复记录的谓词。 |
621
622**示例:**
623  ```js
624  dataAbilityPredicates.equalTo("NAME", "Rose").distinct()
625  ```
626
627
628### limitAs
629
630
631limitAs(value: number): DataAbilityPredicates
632
633
634设置最大数据记录数的谓词。
635
636**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core637
638**参数:**
639  | 参数名 | 类型 | 必填 | 说明 |
640  | -------- | -------- | -------- | -------- |
641  | value | number | 是 | 最大数据记录数。 |
642
643**返回值:**
644  | 类型 | 说明 |
645  | -------- | -------- |
646  | [DataAbilityPredicates](#dataabilitypredicates) | 返回可用于设置最大数据记录数的谓词。 |
647
648**示例:**
649  ```js
650  dataAbilityPredicates.equalTo("NAME", "Rose").limitAs(3)
651  ```
652
653
654### offsetAs
655
656
657offsetAs(rowOffset: number): DataAbilityPredicates
658
659
660配置谓词以指定返回结果的起始位置。
661
662**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core663
664**参数:**
665  | 参数名 | 类型 | 必填 | 说明 |
666  | -------- | -------- | -------- | -------- |
667  | rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。 |
668
669**返回值:**
670  | 类型 | 说明 |
671  | -------- | -------- |
672  | [DataAbilityPredicates](#dataabilitypredicates) | 返回具有指定返回结果起始位置的谓词。 |
673
674**示例:**
675  ```js
676  dataAbilityPredicates.equalTo("NAME", "Rose").offsetAs(3)
677  ```
678
679
680### groupBy
681
682
683groupBy(fields: Array<string>): DataAbilityPredicates
684
685
686配置谓词按指定列分组查询结果。
687
688**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core689
690**参数:**
691  | 参数名 | 类型 | 必填 | 说明 |
692  | -------- | -------- | -------- | -------- |
693  | fields | Array<string> | 是 | 指定分组依赖的列名。 |
694
695**返回值:**
696  | 类型 | 说明 |
697  | -------- | -------- |
698  | [DataAbilityPredicates](#dataabilitypredicates) | 返回分组查询列的谓词。 |
699
700**示例:**
701  ```js
702  dataAbilityPredicates.groupBy(["AGE", "NAME"])
703  ```
704
705### indexedBy
706
707
708indexedBy(field: string): DataAbilityPredicates
709
710
711配置谓词以指定索引列。
712
713**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core714
715**参数:**
716  | 参数名 | 类型 | 必填 | 说明 |
717  | -------- | -------- | -------- | -------- |
718  | indexName | string | 是 | 索引列的名称。 |
719
720**返回值:**
721  | 类型 | 说明 |
722  | -------- | -------- |
723  | [DataAbilityPredicates](#dataabilitypredicates) | 返回具有指定索引列的谓词。 |
724
725**示例:**
726  ```js
727  dataAbilityPredicates.indexedBy("SALARY_INDEX")
728  ```
729
730
731### in
732
733
734in(field: string, value: Array<ValueType>): DataAbilityPredicates
735
736
737配置谓词以匹配数据类型为ValueType数组且值在给定范围内的指定字段。
738
739**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core740
741**参数:**
742  | 参数名 | 类型 | 必填 | 说明 |
743  | -------- | -------- | -------- | -------- |
744  | field | string | 是 | 数据库表中的列名。 |
745  | value | Array<[ValueType](#valuetype)> | 是 | 以ValueType类型数组形式指定的要匹配的值。 |
746
747
748**返回值:**
749  | 类型 | 说明 |
750  | -------- | -------- |
751  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
752
753**示例:**
754  ```js
755  dataAbilityPredicates.in("AGE", [18, 20])
756  ```
757
758
759### notIn
760
761
762notIn(field: string, value: Array<ValueType>): DataAbilityPredicates
763
764
765配置谓词以匹配数据类型为ValueType数组且值不在给定范围内的指定字段。
766
767**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core768
769**参数:**
770  | 参数名 | 类型 | 必填 | 说明 |
771  | -------- | -------- | -------- | -------- |
772  | field | string | 是 | 数据库表中的列名。 |
773  | value | Array<[ValueType](#valuetype)> | 是 | 以ValueType类型数组形式指定的要匹配的值。 |
774
775
776**返回值:**
777  | 类型 | 说明 |
778  | -------- | -------- |
779  | [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
780
781**示例:**
782  ```js
783  dataAbilityPredicates.notIn("NAME", ["Lisa", "Rose"])
784  ```
785
786## ValueType
787
788用于表示允许的数据字段类型。
789
790**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core791
792| 类型    | 说明                 |
793| ------- | -------------------- |
794| number  | 表示值类型为数字。   |
795| string  | 表示值类型为字符。   |
796| boolean | 表示值类型为布尔值。 |
797