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