• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.data.dataAbility (DataAbility谓词)
2<!--Kit: ArkData-->
3<!--Subsystem: DistributedDataManager-->
4<!--Owner: @baijidong-->
5<!--Designer: @widecode; @htt1997-->
6<!--Tester: @yippo; @logic42-->
7<!--Adviser: @ge-yafang-->
8
9DataAbility谓词用于构造关系型数据库的谓词,提供用于实现不同查询方法的谓词。
10
11> **说明:**
12>
13> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15
16## 导入模块
17
18```js
19import { dataAbility } from '@kit.ArkData';
20```
21
22## dataAbility.createRdbPredicates
23
24createRdbPredicates(name: string, dataAbilityPredicates: DataAbilityPredicates): rdb.RdbPredicates
25
26通过表名和DataAbility谓词对象创建Rdb谓词对象。
27
28**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
29
30**参数:**
31
32| 参数名 | 类型 | 必填 | 说明 |
33| -------- | -------- | -------- | -------- |
34| name | string | 是 | 数据库表中的表名。 |
35| dataAbilityPredicates | [DataAbilityPredicates](#dataabilitypredicates) | 是 | DataAbility谓词。 |
36
37**返回值:**
38
39| 类型 | 说明 |
40| -------- | -------- |
41| rdb.[RdbPredicates](js-apis-data-rdb.md#rdbpredicates) | 返回RdbPredicates对象。 |
42
43**示例:**
44
45  ```js
46  let dataAbilityPredicates = new dataAbility.DataAbilityPredicates()
47  dataAbilityPredicates.equalTo("NAME", "Rose")
48  // EMPLOYEE是使用关系型数据库创建的表。
49  let predicates = dataAbility.createRdbPredicates("EMPLOYEE", dataAbilityPredicates)
50  ```
51
52## DataAbilityPredicates
53
54提供用于实现不同查询方法的谓词。
55
56**初始化:**
57
58  ```js
59  let dataAbilityPredicates = new dataAbility.DataAbilityPredicates()
60  ```
61
62### equalTo
63
64equalTo(field: string, value: ValueType): DataAbilityPredicates
65
66配置谓词以匹配数据,数据的指定字段数据类型为ValueType且值等于指定值。
67
68此方法类似于SQL语句的“=”。
69
70**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
71
72**参数:**
73
74| 参数名 | 类型 | 必填 | 说明 |
75| -------- | -------- | -------- | -------- |
76| field | string | 是 | 数据库表中的列名。 |
77| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
78
79**返回值:**
80
81| 类型 | 说明 |
82| -------- | -------- |
83| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
84
85**示例:**
86
87  ```js
88  dataAbilityPredicates.equalTo("NAME", "lisi")
89  ```
90
91### notEqualTo
92
93notEqualTo(field: string, value: ValueType): DataAbilityPredicates
94
95配置谓词以匹配数据,数据的指定字段数据类型为ValueType且不等于指定值。
96
97此方法类似于SQL语句的“!=”。
98
99**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
100
101**参数:**
102
103| 参数名 | 类型 | 必填 | 说明 |
104| -------- | -------- | -------- | -------- |
105| field | string | 是 | 数据库表中的列名。 |
106| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
107
108**返回值:**
109
110| 类型 | 说明 |
111| -------- | -------- |
112| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
113
114**示例:**
115
116  ```js
117  dataAbilityPredicates.notEqualTo("NAME", "lisi")
118  ```
119
120### beginWrap
121
122beginWrap(): DataAbilityPredicates
123
124在谓词中添加左括号。此方法类似于SQL语句的“(”,需要与endWrap一起使用。
125
126**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
127
128**返回值:**
129
130| 类型 | 说明 |
131| -------- | -------- |
132| [DataAbilityPredicates](#dataabilitypredicates) | 返回带有左括号的DataAbility谓词。 |
133
134**示例:**
135
136  ```js
137  dataAbilityPredicates.equalTo("NAME", "lisi")
138      .beginWrap()
139      .equalTo("AGE", 18)
140      .or()
141      .equalTo("SALARY", 200.5)
142      .endWrap()
143  ```
144
145### endWrap
146
147endWrap(): DataAbilityPredicates
148
149在谓词中添加右括号。此方法类似于SQL语句的“)”,需要和beginWrap一起使用。
150
151**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
152
153**返回值:**
154
155| 类型 | 说明 |
156| -------- | -------- |
157| [DataAbilityPredicates](#dataabilitypredicates) | 返回带有右括号的DataAbility谓词。 |
158
159**示例:**
160
161  ```js
162  dataAbilityPredicates.equalTo("NAME", "lisi")
163      .beginWrap()
164      .equalTo("AGE", 18)
165      .or()
166      .equalTo("SALARY", 200.5)
167      .endWrap()
168  ```
169
170### or
171
172or(): DataAbilityPredicates
173
174将或条件添加到谓词中。
175
176此方法类似于SQL语句“or”。
177
178**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
179
180**返回值:**
181
182| 类型 | 说明 |
183| -------- | -------- |
184| [DataAbilityPredicates](#dataabilitypredicates) | 返回带有或条件的DataAbility谓词。 |
185
186**示例:**
187
188  ```js
189  dataAbilityPredicates.equalTo("NAME", "Lisa")
190      .or()
191      .equalTo("NAME", "Rose")
192  ```
193
194### and
195
196and(): DataAbilityPredicates
197
198将和条件添加到谓词中。
199
200**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
201
202**返回值:**
203
204| 类型 | 说明 |
205| -------- | -------- |
206| [DataAbilityPredicates](#dataabilitypredicates) | 返回带有和条件的DataAbility谓词。 |
207
208**示例:**
209
210  ```js
211  dataAbilityPredicates.equalTo("NAME", "Lisa")
212      .and()
213      .equalTo("SALARY", 200.5)
214  ```
215
216### contains
217
218contains(field: string, value: string): DataAbilityPredicates
219
220配置谓词以匹配数据类型为string且value包含指定值的字段。
221
222**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
223
224**参数:**
225
226| 参数名 | 类型 | 必填 | 说明 |
227| -------- | -------- | -------- | -------- |
228| field | string | 是 | 数据库表中的列名。 |
229| value | string | 是 | 指示要与谓词匹配的值。 |
230
231**返回值:**
232
233| 类型 | 说明 |
234| -------- | -------- |
235| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
236
237**示例:**
238
239  ```js
240  dataAbilityPredicates.contains("NAME", "os")
241  ```
242
243### beginsWith
244
245beginsWith(field: string, value: string): DataAbilityPredicates
246
247配置谓词以匹配数据类型为string且值以指定字符串开头的字段。
248
249此方法类似于SQL语句的“%”。
250
251**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
252
253**参数:**
254
255| 参数名 | 类型 | 必填 | 说明 |
256| -------- | -------- | -------- | -------- |
257| field | string | 是 | 数据库表中的列名。 |
258| value | string | 是 | 指示要与谓词匹配的值。 |
259
260**返回值:**
261
262| 类型 | 说明 |
263| -------- | -------- |
264| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
265
266**示例:**
267
268  ```js
269  dataAbilityPredicates.beginsWith("NAME", "os")
270  ```
271
272### endsWith
273
274endsWith(field: string, value: string): DataAbilityPredicates
275
276配置谓词以匹配数据类型为string且值以指定字符串结尾的字段。
277
278此方法类似于SQL语句的“%”。
279
280**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
281
282**参数:**
283
284| 参数名 | 类型 | 必填 | 说明 |
285| -------- | -------- | -------- | -------- |
286| field | string | 是 | 数据库表中的列名。 |
287| value | string | 是 | 指示要与谓词匹配的值。 |
288
289**返回值:**
290
291| 类型 | 说明 |
292| -------- | -------- |
293| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
294
295**示例:**
296
297  ```
298  dataAbilityPredicates.endsWith("NAME", "se")
299  ```
300
301### isNull
302
303isNull(field: string): DataAbilityPredicates
304
305配置谓词以匹配值为null的字段。
306
307**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
308
309**参数:**
310
311| 参数名 | 类型 | 必填 | 说明 |
312| -------- | -------- | -------- | -------- |
313| field | string | 是 | 数据库表中的列名。 |
314
315**返回值:**
316
317| 类型 | 说明 |
318| -------- | -------- |
319| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
320
321**示例:**
322
323  ```js
324  dataAbilityPredicates.isNull("NAME")
325  ```
326
327### isNotNull
328
329isNotNull(field: string): DataAbilityPredicates
330
331配置谓词以匹配值不为null的指定字段。
332
333**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
334
335**参数:**
336
337| 参数名 | 类型 | 必填 | 说明 |
338| -------- | -------- | -------- | -------- |
339| field | string | 是 | 数据库表中的列名。 |
340
341**返回值:**
342
343| 类型 | 说明 |
344| -------- | -------- |
345| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
346
347**示例:**
348
349  ```js
350  dataAbilityPredicates.isNotNull("NAME")
351  ```
352
353### like
354
355like(field: string, value: string): DataAbilityPredicates
356
357配置谓词以匹配数据类型为string且值类似于指定字符串的字段。
358
359此方法类似于SQL语句“like”。
360
361**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
362
363**参数:**
364
365| 参数名 | 类型 | 必填 | 说明 |
366| -------- | -------- | -------- | -------- |
367| field | string | 是 | 数据库表中的列名。 |
368| value | string | 是 | 指示要与谓词匹配的值。 |
369
370**返回值:**
371
372| 类型 | 说明 |
373| -------- | -------- |
374| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
375
376**示例:**
377
378  ```js
379  dataAbilityPredicates.like("NAME", "%os%")
380  ```
381
382### glob
383
384glob(field: string, value: string): DataAbilityPredicates
385
386配置谓词以匹配数据类型为string的指定字段。与like方法不同,该方法的输入参数区分大小写。
387
388**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
389
390**参数:**
391
392| 参数名 | 类型 | 必填 | 说明 |
393| -------- | -------- | -------- | -------- |
394| field | string | 是 | 数据库表中的列名。 |
395| value | string | 是 | 指示要与谓词匹配的值。 |
396
397**返回值:**
398
399| 类型 | 说明 |
400| -------- | -------- |
401| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
402
403**示例:**
404
405  ```js
406  dataAbilityPredicates.glob("NAME", "?h*g")
407
408  // 仅可匹配到"name"字段值为“Lisa”
409  dataAbilityPredicates.glob("NAME", "Lisa")
410
411  // 仅可以匹配到"name"字段值为“lisa”
412  dataAbilityPredicates.glob("NAME", "lisa")
413  ```
414
415### between
416
417between(field: string, low: ValueType, high: ValueType): DataAbilityPredicates
418
419配置谓词以匹配数据类型为ValueType且value在指定范围内的指定字段。
420
421**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
422
423**参数:**
424
425| 参数名 | 类型 | 必填 | 说明 |
426| -------- | -------- | -------- | -------- |
427| field | string | 是 | 数据库表中的列名。 |
428| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
429| high | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最大值。 |
430
431**返回值:**
432
433| 类型 | 说明 |
434| -------- | -------- |
435| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
436
437**示例:**
438
439  ```js
440  dataAbilityPredicates.between("AGE", 10, 50)
441  ```
442
443### notBetween
444
445notBetween(field: string, low: ValueType, high: ValueType): DataAbilityPredicates
446
447配置谓词以匹配数据类型为ValueType且value超出给定范围的指定字段。
448
449**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
450
451**参数:**
452
453| 参数名 | 类型 | 必填 | 说明 |
454| -------- | -------- | -------- | -------- |
455| field | string | 是 | 数据库表中的列名。 |
456| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
457| high | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最大值。 |
458
459**返回值:**
460
461| 类型 | 说明 |
462| -------- | -------- |
463| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
464
465**示例:**
466
467  ```js
468  dataAbilityPredicates.notBetween("AGE", 10, 50)
469  ```
470
471### greaterThan
472
473greaterThan(field: string, value: ValueType): DataAbilityPredicates
474
475配置谓词以匹配数据类型为ValueType且值大于指定值的字段。
476
477**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
478
479**参数:**
480
481| 参数名 | 类型 | 必填 | 说明 |
482| -------- | -------- | -------- | -------- |
483| field | string | 是 | 数据库表中的列名。 |
484| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
485
486**返回值:**
487
488| 类型 | 说明 |
489| -------- | -------- |
490| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
491
492**示例:**
493
494  ```js
495  dataAbilityPredicates.greaterThan("AGE", 18)
496  ```
497
498### lessThan
499
500lessThan(field: string, value: ValueType): DataAbilityPredicates
501
502配置谓词以匹配数据类型为valueType且value小于指定值的字段。
503
504**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
505
506**参数:**
507
508| 参数名 | 类型 | 必填 | 说明 |
509| -------- | -------- | -------- | -------- |
510| field | string | 是 | 数据库表中的列名。 |
511| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
512
513**返回值:**
514
515| 类型 | 说明 |
516| -------- | -------- |
517| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
518
519**示例:**
520
521  ```js
522  dataAbilityPredicates.lessThan("AGE", 20)
523  ```
524
525### greaterThanOrEqualTo
526
527greaterThanOrEqualTo(field: string, value: ValueType): DataAbilityPredicates
528
529配置谓词以匹配数据类型为ValueType且value大于或等于指定值的字段。
530
531**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
532
533**参数:**
534
535| 参数名 | 类型 | 必填 | 说明 |
536| -------- | -------- | -------- | -------- |
537| field | string | 是 | 数据库表中的列名。 |
538| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
539
540**返回值:**
541
542| 类型 | 说明 |
543| -------- | -------- |
544| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
545
546**示例:**
547
548  ```js
549  dataAbilityPredicates.greaterThanOrEqualTo("AGE", 18)
550  ```
551
552### lessThanOrEqualTo
553
554lessThanOrEqualTo(field: string, value: ValueType): DataAbilityPredicates
555
556配置谓词以匹配数据类型为ValueType且value小于或等于指定值的字段。
557
558**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
559
560**参数:**
561
562| 参数名 | 类型 | 必填 | 说明 |
563| -------- | -------- | -------- | -------- |
564| field | string | 是 | 数据库表中的列名。 |
565| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
566
567**返回值:**
568
569| 类型 | 说明 |
570| -------- | -------- |
571| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
572
573**示例:**
574
575  ```js
576  dataAbilityPredicates.lessThanOrEqualTo("AGE", 20)
577  ```
578
579### orderByAsc
580
581orderByAsc(field: string): DataAbilityPredicates
582
583配置谓词以匹配其值按升序排序的列。当有多个orderByAsc使用时,最先使用的具有最高优先级。
584
585**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
586
587**参数:**
588
589| 参数名 | 类型 | 必填 | 说明 |
590| -------- | -------- | -------- | -------- |
591| field | string | 是 | 数据库表中的列名。 |
592
593**返回值:**
594
595| 类型 | 说明 |
596| -------- | -------- |
597| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
598
599**示例:**
600
601  ```js
602  // 先按“name”字段排序,相同时按“AGE”字段排序,其次按“SALARY”排序
603  dataAbilityPredicates.orderByAsc("NAME").orderByAsc("AGE").orderByAsc("SALARY")
604  ```
605
606### orderByDesc
607
608orderByDesc(field: string): DataAbilityPredicates
609
610配置谓词以匹配其值按降序排序的列。当有多个orderByDesc使用时,最先使用的具有最高优先级。
611
612**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
613
614**参数:**
615
616| 参数名 | 类型 | 必填 | 说明 |
617| -------- | -------- | -------- | -------- |
618| field | string | 是 | 数据库表中的列名。 |
619
620**返回值:**
621
622| 类型 | 说明 |
623| -------- | -------- |
624| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
625
626**示例:**
627
628  ```js
629  // 优先按“AGE”排序,相同时按“SALARY”排序
630  dataAbilityPredicates.orderByDesc("AGE").orderByDesc("SALARY")
631  ```
632
633### distinct
634
635distinct(): DataAbilityPredicates
636
637配置谓词以过滤重复记录并仅保留其中一个。
638
639**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
640
641**返回值:**
642
643| 类型 | 说明 |
644| -------- | -------- |
645| [DataAbilityPredicates](#dataabilitypredicates) | 返回可用于过滤重复记录的谓词。 |
646
647**示例:**
648
649  ```js
650  dataAbilityPredicates.equalTo("NAME", "Rose").distinct()
651  ```
652
653### limitAs
654
655limitAs(value: number): DataAbilityPredicates
656
657设置谓词的最大数据记录数量。
658
659**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
660
661**参数:**
662
663| 参数名 | 类型 | 必填 | 说明 |
664| -------- | -------- | -------- | -------- |
665| value | number | 是 | 最大数据记录数,取值为正整数。传入值小于等于0时,不会限制记录数量。 |
666
667**返回值:**
668
669| 类型 | 说明 |
670| -------- | -------- |
671| [DataAbilityPredicates](#dataabilitypredicates) | 返回可用于设置最大数据记录数的谓词。 |
672
673**示例:**
674
675  ```js
676  dataAbilityPredicates.equalTo("NAME", "Rose").limitAs(3)
677  ```
678
679### offsetAs
680
681offsetAs(rowOffset: number): DataAbilityPredicates
682
683设置谓词查询结果的起始位置。需要同步调用limitAs接口指定查询数量,否则无查询结果。查询指定偏移位置后的所有行时,limitAs接口需传入参数-1。
684
685**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
686
687**参数:**
688
689| 参数名 | 类型 | 必填 | 说明 |
690| -------- | -------- | -------- | -------- |
691| rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。传入值小于等于0时,查询结果将从第一个元素位置返回。 |
692
693**返回值:**
694
695| 类型 | 说明 |
696| -------- | -------- |
697| [DataAbilityPredicates](#dataabilitypredicates) | 返回具有指定返回结果起始位置的谓词。 |
698
699**示例:**
700
701  ```js
702  // 跳过前三条数据,显示后续三条数据
703  dataAbilityPredicates.equalTo("NAME", "Rose").offsetAs(3).limitAs(3)
704  ```
705
706
707### groupBy
708
709groupBy(fields: Array&lt;string&gt;): DataAbilityPredicates
710
711配置谓词按指定列分组查询结果。
712
713**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
714
715**参数:**
716
717| 参数名 | 类型 | 必填 | 说明 |
718| -------- | -------- | -------- | -------- |
719| fields | Array&lt;string&gt; | 是 | 指定分组依赖的列名。 |
720
721**返回值:**
722
723| 类型 | 说明 |
724| -------- | -------- |
725| [DataAbilityPredicates](#dataabilitypredicates) | 返回分组查询列的谓词。 |
726
727**示例:**
728
729  ```js
730  dataAbilityPredicates.groupBy(["AGE", "NAME"])
731  ```
732
733### indexedBy
734
735indexedBy(field: string): DataAbilityPredicates
736
737配置谓词以指定索引列。在使用此方法之前,您需要创建一个索引列。
738
739**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
740
741**参数:**
742
743| 参数名 | 类型 | 必填 | 说明 |
744| -------- | -------- | -------- | -------- |
745| field | string | 是 | 创建的索引列名称。 |
746
747**返回值:**
748
749| 类型 | 说明 |
750| -------- | -------- |
751| [DataAbilityPredicates](#dataabilitypredicates) | 返回具有指定索引列的谓词。 |
752
753**示例:**
754
755```js
756import { UIAbility } from '@kit.AbilityKit';
757import { dataAbility, relationalStore } from '@kit.ArkData';
758import { BusinessError } from '@kit.BasicServicesKit';
759
760export default class EntryAbility extends UIAbility {
761  async onCreate(): Promise<void> {
762    let store: relationalStore.RdbStore | undefined = undefined;
763    let context = this.context;
764
765    try {
766      const STORE_CONFIG: relationalStore.StoreConfig = {
767        name: 'RdbTest.db', // 数据库文件名
768        securityLevel: relationalStore.SecurityLevel.S3,
769      };
770      // 表结构:EMPLOYEE (NAME, AGE, SALARY, CODES)
771      const SQL_CREATE_TABLE =
772        'CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)'; // 建表Sql语句
773      store = await relationalStore.getRdbStore(context, STORE_CONFIG);
774      console.info('Succeeded in getting RdbStore.');
775      await store.executeSql(SQL_CREATE_TABLE); // 创建数据表
776    } catch (e) {
777      const err = e as BusinessError;
778      console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`);
779    }
780
781    if (!store) {
782      return;
783    }
784
785    // 创建索引
786    const SQL_CREATE_INDEX = 'CREATE INDEX SALARY_INDEX ON EMPLOYEE(SALARY)'
787    await store.executeSql(SQL_CREATE_INDEX);
788    // ...
789
790    let dataAbilityPredicates = new dataAbility.DataAbilityPredicates()
791    dataAbilityPredicates.indexedBy("SALARY_INDEX")
792
793    //  ...
794  }
795}
796```
797
798### in
799
800in(field: string, value: Array&lt;ValueType&gt;): DataAbilityPredicates
801
802配置谓词以匹配数据类型为ValueType数组且值在给定范围内的指定字段。
803
804**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
805
806**参数:**
807
808| 参数名 | 类型 | 必填 | 说明 |
809| -------- | -------- | -------- | -------- |
810| field | string | 是 | 数据库表中的列名。 |
811| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType类型数组形式指定的要匹配的值。 |
812
813
814**返回值:**
815
816| 类型 | 说明 |
817| -------- | -------- |
818| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
819
820**示例:**
821
822  ```js
823  dataAbilityPredicates.in("AGE", [18, 20])
824  ```
825
826### notIn
827
828notIn(field: string, value: Array&lt;ValueType&gt;): DataAbilityPredicates
829
830配置谓词以匹配数据类型为ValueType数组且值不在给定范围内的指定字段。
831
832**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
833
834**参数:**
835
836| 参数名 | 类型 | 必填 | 说明 |
837| -------- | -------- | -------- | -------- |
838| field | string | 是 | 数据库表中的列名。 |
839| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType类型数组形式指定的要匹配的值。 |
840
841**返回值:**
842
843| 类型 | 说明 |
844| -------- | -------- |
845| [DataAbilityPredicates](#dataabilitypredicates) | 返回与指定字段匹配的谓词。 |
846
847**示例:**
848
849  ```js
850  dataAbilityPredicates.notIn("NAME", ["Lisa", "Rose"])
851  ```
852
853## ValueType
854
855type ValueType = number | string | boolean
856
857用于表示允许的数据字段类型。
858
859**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
860
861| 类型    | 说明                 |
862| ------- | -------------------- |
863| number  | 表示值类型为数字。   |
864| string  | 表示值类型为字符。   |
865| boolean | 表示值类型为布尔值。 |
866