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<string>): DataAbilityPredicates 710 711配置谓词按指定列分组查询结果。 712 713**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 714 715**参数:** 716 717| 参数名 | 类型 | 必填 | 说明 | 718| -------- | -------- | -------- | -------- | 719| fields | Array<string> | 是 | 指定分组依赖的列名。 | 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<ValueType>): DataAbilityPredicates 801 802配置谓词以匹配数据类型为ValueType数组且值在给定范围内的指定字段。 803 804**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 805 806**参数:** 807 808| 参数名 | 类型 | 必填 | 说明 | 809| -------- | -------- | -------- | -------- | 810| field | string | 是 | 数据库表中的列名。 | 811| value | Array<[ValueType](#valuetype)> | 是 | 以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<ValueType>): DataAbilityPredicates 829 830配置谓词以匹配数据类型为ValueType数组且值不在给定范围内的指定字段。 831 832**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 833 834**参数:** 835 836| 参数名 | 类型 | 必填 | 说明 | 837| -------- | -------- | -------- | -------- | 838| field | string | 是 | 数据库表中的列名。 | 839| value | Array<[ValueType](#valuetype)> | 是 | 以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