js-apis-data-rdb.md 66.0 KB
Newer Older
Z
zengyawen 已提交
1
# 关系型数据库
Z
zengyawen 已提交
2

W
wuyongning 已提交
3 4
关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。

W
wuyongning 已提交
5
该模块提供以下关系型数据库相关的常用功能:
W
wuyongning 已提交
6

W
wuyongning 已提交
7 8
- [RdbPredicates](#rdbpredicates): 数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。
- [RdbStore](#rdbstore):提供管理关系数据库(RDB)方法的接口。
W
wuyongning 已提交
9

G
ge-yafang 已提交
10
> **说明:**
11
> 
Z
zengyawen 已提交
12
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
13

Z
zengyawen 已提交
14
## 导入模块
Z
zengyawen 已提交
15

G
ge-yafang 已提交
16
```js
G
ge-yafang 已提交
17
import data_rdb from '@ohos.data.rdb';
Z
zengyawen 已提交
18 19
```

P
PaDoBoo 已提交
20
## data_rdb.getRdbStore
Z
zengyawen 已提交
21

W
wuyongning 已提交
22 23
getRdbStore(context: Context, config: StoreConfig, version: number, callback: AsyncCallback<RdbStore>): void

W
wangxiyue 已提交
24
获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用callback异步回调。
W
wuyongning 已提交
25

P
PaDaBoo 已提交
26
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
27

P
PaDaBoo 已提交
28
**参数:**
W
wuyongning 已提交
29 30 31

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
32
| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
W
wuyongning 已提交
33 34 35 36
| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
| version | number | 是 | 数据库版本。 |
| callback | AsyncCallback&lt;[RdbStore](#rdbstore)&gt; | 是 | 指定callback回调函数,返回一个RdbStore。 |

P
PaDaBoo 已提交
37
**示例:**
W
wuyongning 已提交
38 39 40 41

```js
const STORE_CONFIG = { name: "RdbTest.db"}
data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, function (err, rdbStore) {
P
PaDaBoo 已提交
42 43 44 45 46
    if (err) {
        console.info("Get RdbStore failed, err: " + err)
        return
    }
    console.log("Get RdbStore successfully.")
W
wuyongning 已提交
47 48 49
})
```

W
wuyongning 已提交
50
## data_rdb.getRdbStore
W
wuyongning 已提交
51 52 53

getRdbStore(context: Context, config: StoreConfig, version: number): Promise&lt;RdbStore&gt;

W
wangxiyue 已提交
54
获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,使用Promise异步回调。
W
wuyongning 已提交
55

P
PaDaBoo 已提交
56
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
57

P
PaDaBoo 已提交
58
**参数:**
W
wuyongning 已提交
59 60 61

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
62
| context | Context | 是 |应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
W
wuyongning 已提交
63 64 65 66 67 68 69 70 71
| config | [StoreConfig](#storeconfig) | 是 | 与此RDB存储相关的数据库配置。 |
| version | number | 是 | 数据库版本。 |

**返回值**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[RdbStore](#rdbstore)&gt; | 指定Promise回调函数。返回一个RdbStore。 |

P
PaDaBoo 已提交
72
**示例:**
W
wuyongning 已提交
73 74 75

```js
const STORE_CONFIG = { name: "RdbTest.db" }
P
PaDaBoo 已提交
76 77 78
let promise = data_rdb.getRdbStore(this.context, STORE_CONFIG, 1);
promise.then(async (rdbStore) => {
    console.log("Get RdbStore successfully.")
W
wuyongning 已提交
79
}).catch((err) => {
P
PaDaBoo 已提交
80
    console.log("Get RdbStore failed, err: " + err)
W
wuyongning 已提交
81 82 83
})
```

P
PaDoBoo 已提交
84
## data_rdb.deleteRdbStore
Z
zengyawen 已提交
85

W
wuyongning 已提交
86
deleteRdbStore(context: Context, name: string, callback: AsyncCallback&lt;void&gt;): void
W
wuyongning 已提交
87

W
wangxiyue 已提交
88
删除数据库,使用callback异步回调。
W
wuyongning 已提交
89

P
PaDaBoo 已提交
90
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
91

P
PaDaBoo 已提交
92
**参数:**
W
wuyongning 已提交
93 94
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
95
| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
W
wuyongning 已提交
96
| name | string | 是 | 数据库名称。 |
W
wuyongning 已提交
97
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
W
wuyongning 已提交
98

P
PaDaBoo 已提交
99 100 101 102 103 104 105 106 107 108
**示例:**
```js
data_rdb.deleteRdbStore(this.context, "RdbTest.db", function (err, rdbStore) {
    if (err) {
        console.info("Delete RdbStore failed, err: " + err)
        return
    }
    console.log("Delete RdbStore successfully.")
})
```
W
wuyongning 已提交
109

W
wuyongning 已提交
110
## data_rdb.deleteRdbStore
W
wuyongning 已提交
111

W
wuyongning 已提交
112
deleteRdbStore(context: Context, name: string): Promise&lt;void&gt;
Z
zengyawen 已提交
113

W
wangxiyue 已提交
114
使用指定的数据库文件配置删除数据库,使用Promise异步回调。
Z
zengyawen 已提交
115

P
PaDaBoo 已提交
116
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
117

Z
zengyawen 已提交
118
**参数**
Z
zengyawen 已提交
119 120
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
121
| context | Context | 是 | 应用的上下文。 <br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。|
Z
zengyawen 已提交
122
| name | string | 是 | 数据库名称。 |
Z
zengyawen 已提交
123

Z
zengyawen 已提交
124
**返回值**
Z
zengyawen 已提交
125 126
| 类型 | 说明 |
| -------- | -------- |
W
wuyongning 已提交
127
| Promise&lt;void&gt; | 指定Promise回调函数。 |
Z
zengyawen 已提交
128

P
PaDaBoo 已提交
129 130
**示例:**
```js
W
wuyongning 已提交
131
let promise = data_rdb.deleteRdbStore(this.context, "RdbTest.db")
P
PaDaBoo 已提交
132 133 134 135 136 137
promise.then(()=>{
    console.log("Delete RdbStore successfully.")
}).catch((err) => {
    console.info("Delete RdbStore failed, err: " + err)
})
```
Z
zengyawen 已提交
138

Z
zengyawen 已提交
139

Z
zengyawen 已提交
140
## RdbPredicates
Z
zengyawen 已提交
141 142 143 144

表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。


Z
zengyawen 已提交
145 146 147 148
### constructor

constructor(name: string)

Z
zengyawen 已提交
149 150 151

构造函数。

P
PaDaBoo 已提交
152
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
153

P
PaDaBoo 已提交
154
**参数:**
Z
zengyawen 已提交
155 156 157
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库表名。 |
Z
zengyawen 已提交
158

P
PaDaBoo 已提交
159 160 161 162
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
```
Z
zengyawen 已提交
163

Z
zengyawen 已提交
164
### inDevices<sup>8+</sup>
S
sun-dou 已提交
165

W
wuyongning 已提交
166
inDevices(devices: Array&lt;string&gt;): RdbPredicates
S
sun-dou 已提交
167 168 169 170


同步分布式数据库时指定组网内的远程设备。

P
PaDaBoo 已提交
171
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
172

P
PaDaBoo 已提交
173
**参数:**
Z
zengyawen 已提交
174 175 176
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| devices | Array&lt;string&gt; | 是 | 指定的组网内的远程设备ID。 |
S
sun-dou 已提交
177

Z
zengyawen 已提交
178
**返回值**
Z
zengyawen 已提交
179 180 181
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
S
sun-dou 已提交
182

P
PaDaBoo 已提交
183 184 185 186 187
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inDevices(['12345678abcde'])
```
S
sun-dou 已提交
188

W
wuyongning 已提交
189
### inAllDevices<sup>8+</sup>
S
sun-dou 已提交
190

W
wuyongning 已提交
191
inAllDevices(): RdbPredicates
S
sun-dou 已提交
192 193 194 195


同步分布式数据库时连接到组网内的所有远程设备。

P
PaDaBoo 已提交
196
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
197

Z
zengyawen 已提交
198
**返回值**
Z
zengyawen 已提交
199 200 201
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
S
sun-dou 已提交
202

P
PaDaBoo 已提交
203 204 205 206 207
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inAllDevices()
```
Z
zengyawen 已提交
208 209 210 211 212

### equalTo

equalTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
213 214 215

配置谓词以匹配数据字段为ValueType且值等于指定值的字段。

P
PaDaBoo 已提交
216
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
217

P
PaDaBoo 已提交
218
**参数:**
Z
zengyawen 已提交
219 220 221 222
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
223

Z
zengyawen 已提交
224
**返回值**
Z
zengyawen 已提交
225 226 227
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
228

P
PaDaBoo 已提交
229 230 231 232 233
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
```
Z
zengyawen 已提交
234 235 236 237 238 239


### notEqualTo

notEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
240 241 242

配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。

P
PaDaBoo 已提交
243
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
244

P
PaDaBoo 已提交
245
**参数:**
Z
zengyawen 已提交
246 247 248 249
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
250

Z
zengyawen 已提交
251
**返回值**
Z
zengyawen 已提交
252 253 254
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
255

P
PaDaBoo 已提交
256 257 258 259 260
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notEqualTo("NAME", "lisi")
```
Z
zengyawen 已提交
261 262 263 264 265 266


### beginWrap

beginWrap(): RdbPredicates

Z
zengyawen 已提交
267 268 269

向谓词添加左括号。

P
PaDaBoo 已提交
270
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
271

Z
zengyawen 已提交
272
**返回值**
Z
zengyawen 已提交
273 274 275
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有左括号的Rdb谓词。 |
Z
zengyawen 已提交
276

P
PaDaBoo 已提交
277 278 279 280 281 282 283 284 285 286
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()
```
Z
zengyawen 已提交
287 288


Z
zengyawen 已提交
289
### endWrap
Z
zengyawen 已提交
290

Z
zengyawen 已提交
291
endWrap(): RdbPredicates
Z
zengyawen 已提交
292 293 294 295


向谓词添加右括号。

P
PaDaBoo 已提交
296
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
297

Z
zengyawen 已提交
298
**返回值**
Z
zengyawen 已提交
299 300 301
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有右括号的Rdb谓词。 |
Z
zengyawen 已提交
302

P
PaDaBoo 已提交
303 304 305 306 307 308 309 310 311 312
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
    .beginWrap()
    .equalTo("AGE", 18)
    .or()
    .equalTo("SALARY", 200.5)
    .endWrap()
```
Z
zengyawen 已提交
313 314


Z
zengyawen 已提交
315
### or
Z
zengyawen 已提交
316

Z
zengyawen 已提交
317
or(): RdbPredicates
Z
zengyawen 已提交
318 319 320 321


将或条件添加到谓词中。

P
PaDaBoo 已提交
322
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
323

Z
zengyawen 已提交
324
**返回值**
Z
zengyawen 已提交
325 326 327
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有或条件的Rdb谓词。 |
Z
zengyawen 已提交
328

P
PaDaBoo 已提交
329 330 331 332 333 334 335
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
    .or()
    .equalTo("NAME", "Rose")
```
Z
zengyawen 已提交
336 337


Z
zengyawen 已提交
338
### and
Z
zengyawen 已提交
339

Z
zengyawen 已提交
340
and(): RdbPredicates
Z
zengyawen 已提交
341 342 343 344


向谓词添加和条件。

P
PaDaBoo 已提交
345
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
346

Z
zengyawen 已提交
347
**返回值**
Z
zengyawen 已提交
348 349 350
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回带有和条件的Rdb谓词。 |
Z
zengyawen 已提交
351

P
PaDaBoo 已提交
352 353 354 355 356 357 358
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
    .and()
    .equalTo("SALARY", 200.5)
```
Z
zengyawen 已提交
359 360


Z
zengyawen 已提交
361
### contains
Z
zengyawen 已提交
362

W
wuyongning 已提交
363
contains(field: string, value: string): RdbPredicates
Z
zengyawen 已提交
364

G
ge-yafang 已提交
365
配置谓词以匹配数据字段为string且value包含指定值的字段。
Z
zengyawen 已提交
366

P
PaDaBoo 已提交
367
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
368

P
PaDaBoo 已提交
369
**参数:**
Z
zengyawen 已提交
370 371 372 373
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
374

Z
zengyawen 已提交
375
**返回值**
Z
zengyawen 已提交
376 377 378
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
379

P
PaDaBoo 已提交
380 381 382 383 384
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.contains("NAME", "os")
```
Z
zengyawen 已提交
385 386 387 388 389 390


### beginsWith

beginsWith(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
391

G
ge-yafang 已提交
392
配置谓词以匹配数据字段为string且值以指定字符串开头的字段。
Z
zengyawen 已提交
393

P
PaDaBoo 已提交
394
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
395

P
PaDaBoo 已提交
396
**参数:**
Z
zengyawen 已提交
397 398 399 400
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
401

Z
zengyawen 已提交
402
**返回值**
Z
zengyawen 已提交
403 404 405
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
406

P
PaDaBoo 已提交
407 408 409 410 411
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.beginsWith("NAME", "os")
```
Z
zengyawen 已提交
412 413 414 415 416 417


### endsWith

endsWith(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
418

G
ge-yafang 已提交
419
配置谓词以匹配数据字段为string且值以指定字符串结尾的字段。
Z
zengyawen 已提交
420

P
PaDaBoo 已提交
421
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
422

P
PaDaBoo 已提交
423
**参数:**
Z
zengyawen 已提交
424 425 426 427
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
428

Z
zengyawen 已提交
429
**返回值**
Z
zengyawen 已提交
430 431 432
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
433

P
PaDaBoo 已提交
434 435 436 437 438
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.endsWith("NAME", "se")
```
Z
zengyawen 已提交
439 440 441 442 443 444


### isNull

isNull(field: string): RdbPredicates

Z
zengyawen 已提交
445 446 447

配置谓词以匹配值为null的字段。

P
PaDaBoo 已提交
448
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
449

P
PaDaBoo 已提交
450
**参数:**
Z
zengyawen 已提交
451 452 453
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
454

Z
zengyawen 已提交
455
**返回值**
Z
zengyawen 已提交
456 457 458
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
459 460

- 示例
P
PaDaBoo 已提交
461 462 463 464
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNull("NAME")
```
Z
zengyawen 已提交
465 466 467 468 469 470


### isNotNull

isNotNull(field: string): RdbPredicates

Z
zengyawen 已提交
471 472 473

配置谓词以匹配值不为null的指定字段。

P
PaDaBoo 已提交
474
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
475

P
PaDaBoo 已提交
476
**参数:**
Z
zengyawen 已提交
477 478 479
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
480

Z
zengyawen 已提交
481
**返回值**
Z
zengyawen 已提交
482 483 484
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
485

P
PaDaBoo 已提交
486 487 488 489 490
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNotNull("NAME")
```
Z
zengyawen 已提交
491 492 493 494 495 496


### like

like(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
497

G
ge-yafang 已提交
498
配置谓词以匹配数据字段为string且值类似于指定字符串的字段。
Z
zengyawen 已提交
499

P
PaDaBoo 已提交
500
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
501

P
PaDaBoo 已提交
502
**参数:**
Z
zengyawen 已提交
503 504 505 506
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
507

Z
zengyawen 已提交
508
**返回值**
Z
zengyawen 已提交
509 510 511
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
512

P
PaDaBoo 已提交
513 514 515 516 517
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.like("NAME", "%os%")
```
Z
zengyawen 已提交
518 519 520 521 522 523


### glob

glob(field: string, value: string): RdbPredicates

Z
zengyawen 已提交
524

G
ge-yafang 已提交
525
配置RdbPredicates匹配数据字段为string的指定字段。
Z
zengyawen 已提交
526

P
PaDaBoo 已提交
527
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
528

P
PaDaBoo 已提交
529
**参数:**
Z
zengyawen 已提交
530 531 532 533
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的值。<br>支持通配符,*表示0个、1个或多个数字或字符,?表示1个数字或字符。 |
Z
zengyawen 已提交
534

Z
zengyawen 已提交
535
**返回值**
Z
zengyawen 已提交
536 537 538
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
539

P
PaDaBoo 已提交
540 541 542 543 544
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.glob("NAME", "?h*g")
```
Z
zengyawen 已提交
545 546 547 548 549 550


### between

between(field: string, low: ValueType, high: ValueType): RdbPredicates

Z
zengyawen 已提交
551 552 553

将谓词配置为匹配数据字段为ValueType且value在给定范围内的指定字段。

P
PaDaBoo 已提交
554
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
555

P
PaDaBoo 已提交
556
**参数:**
Z
zengyawen 已提交
557 558 559 560 561
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |
Z
zengyawen 已提交
562

Z
zengyawen 已提交
563
**返回值**
Z
zengyawen 已提交
564 565 566
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
567

P
PaDaBoo 已提交
568 569 570 571 572
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.between("AGE", 10, 50)
```
Z
zengyawen 已提交
573 574 575 576 577 578


### notBetween

notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates

Z
zengyawen 已提交
579 580 581

配置RdbPredicates以匹配数据字段为ValueType且value超出给定范围的指定字段。

P
PaDaBoo 已提交
582
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
583

P
PaDaBoo 已提交
584
**参数:**
Z
zengyawen 已提交
585 586 587 588 589
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的最大值。 |
Z
zengyawen 已提交
590

Z
zengyawen 已提交
591
**返回值**
Z
zengyawen 已提交
592 593 594
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
595

P
PaDaBoo 已提交
596 597 598 599 600
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notBetween("AGE", 10, 50)
```
Z
zengyawen 已提交
601 602 603 604


### greaterThan

W
wuyongning 已提交
605
greaterThan(field: string, value: ValueType): RdbPredicates
Z
zengyawen 已提交
606 607 608

配置谓词以匹配数据字段为ValueType且值大于指定值的字段。

P
PaDaBoo 已提交
609
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
610

P
PaDaBoo 已提交
611
**参数:**
Z
zengyawen 已提交
612 613 614 615
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
616

Z
zengyawen 已提交
617
**返回值**
Z
zengyawen 已提交
618 619 620
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
621

P
PaDaBoo 已提交
622 623 624 625 626
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThan("AGE", 18)
```
Z
zengyawen 已提交
627 628 629 630 631 632


### lessThan

lessThan(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
633 634 635

配置谓词以匹配数据字段为valueType且value小于指定值的字段。

P
PaDaBoo 已提交
636
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
637

P
PaDaBoo 已提交
638
**参数:**
Z
zengyawen 已提交
639 640 641 642
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
643

Z
zengyawen 已提交
644
**返回值**
Z
zengyawen 已提交
645 646 647
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
648

P
PaDaBoo 已提交
649 650 651 652 653
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThan("AGE", 20)
```
Z
zengyawen 已提交
654 655 656 657 658 659 660


### greaterThanOrEqualTo


greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
661 662 663

配置谓词以匹配数据字段为ValueType且value大于或等于指定值的字段。

P
PaDaBoo 已提交
664
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
665

P
PaDaBoo 已提交
666
**参数:**
Z
zengyawen 已提交
667 668 669 670
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
671

Z
zengyawen 已提交
672
**返回值**
Z
zengyawen 已提交
673 674 675
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
676

P
PaDaBoo 已提交
677 678 679 680 681
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThanOrEqualTo("AGE", 18)
```
Z
zengyawen 已提交
682 683 684 685 686 687 688


### lessThanOrEqualTo


lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates

Z
zengyawen 已提交
689 690 691

配置谓词以匹配数据字段为ValueType且value小于或等于指定值的字段。

P
PaDaBoo 已提交
692
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
693

P
PaDaBoo 已提交
694
**参数:**
Z
zengyawen 已提交
695 696 697 698
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](#valuetype) | 是 | 指示要与谓词匹配的值。 |
Z
zengyawen 已提交
699

Z
zengyawen 已提交
700
**返回值**
Z
zengyawen 已提交
701 702 703
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
704

P
PaDaBoo 已提交
705 706 707 708 709
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThanOrEqualTo("AGE", 20)
```
Z
zengyawen 已提交
710 711 712 713 714 715 716


### orderByAsc


orderByAsc(field: string): RdbPredicates

Z
zengyawen 已提交
717 718 719

配置谓词以匹配其值按升序排序的列。

P
PaDaBoo 已提交
720
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
721

P
PaDaBoo 已提交
722
**参数:**
Z
zengyawen 已提交
723 724 725
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
726

Z
zengyawen 已提交
727
**返回值**
Z
zengyawen 已提交
728 729 730
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
731

P
PaDaBoo 已提交
732 733 734 735 736
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByAsc("NAME")
```
Z
zengyawen 已提交
737 738 739 740 741 742 743


### orderByDesc


orderByDesc(field: string): RdbPredicates

Z
zengyawen 已提交
744 745 746

配置谓词以匹配其值按降序排序的列。

P
PaDaBoo 已提交
747
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
748

P
PaDaBoo 已提交
749
**参数:**
Z
zengyawen 已提交
750 751 752
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
Z
zengyawen 已提交
753

Z
zengyawen 已提交
754
**返回值**
Z
zengyawen 已提交
755 756 757
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
758

P
PaDaBoo 已提交
759 760 761 762 763
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByDesc("AGE")
```
Z
zengyawen 已提交
764 765 766 767 768 769


### distinct

distinct(): RdbPredicates

Z
zengyawen 已提交
770 771 772

配置谓词以过滤重复记录并仅保留其中一个。

P
PaDaBoo 已提交
773
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
774

Z
zengyawen 已提交
775
**返回值**
Z
zengyawen 已提交
776 777 778
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回可用于过滤重复记录的谓词。 |
Z
zengyawen 已提交
779

P
PaDaBoo 已提交
780 781 782 783 784
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").distinct("NAME")
```
Z
zengyawen 已提交
785 786


Z
zengyawen 已提交
787
### limitAs
Z
zengyawen 已提交
788

Z
zengyawen 已提交
789
limitAs(value: number): RdbPredicates
Z
zengyawen 已提交
790 791 792 793


设置最大数据记录数的谓词。

P
PaDaBoo 已提交
794
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
795

P
PaDaBoo 已提交
796
**参数:**
Z
zengyawen 已提交
797 798 799
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | number | 是 | 最大数据记录数。 |
Z
zengyawen 已提交
800

Z
zengyawen 已提交
801
**返回值**
Z
zengyawen 已提交
802 803 804
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回可用于设置最大数据记录数的谓词。 |
Z
zengyawen 已提交
805

P
PaDaBoo 已提交
806 807 808 809 810
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").limitAs(3)
```
Z
zengyawen 已提交
811 812 813 814 815 816


### offsetAs

offsetAs(rowOffset: number): RdbPredicates

Z
zengyawen 已提交
817 818 819

配置RdbPredicates以指定返回结果的起始位置。

P
PaDaBoo 已提交
820
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
821

P
PaDaBoo 已提交
822
**参数:**
Z
zengyawen 已提交
823 824 825
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。 |
Z
zengyawen 已提交
826

Z
zengyawen 已提交
827
**返回值**
Z
zengyawen 已提交
828 829 830
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回具有指定返回结果起始位置的谓词。 |
Z
zengyawen 已提交
831

P
PaDaBoo 已提交
832 833 834 835 836
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").offsetAs(3)
```
Z
zengyawen 已提交
837 838 839 840 841 842


### groupBy

groupBy(fields: Array&lt;string&gt;): RdbPredicates

Z
zengyawen 已提交
843 844 845

配置RdbPredicates按指定列分组查询结果。

P
PaDaBoo 已提交
846
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
847

P
PaDaBoo 已提交
848
**参数:**
Z
zengyawen 已提交
849 850 851
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| fields | Array&lt;string&gt; | 是 | 指定分组依赖的列名。 |
Z
zengyawen 已提交
852

Z
zengyawen 已提交
853
**返回值**
Z
zengyawen 已提交
854 855 856
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回分组查询列的谓词。 |
Z
zengyawen 已提交
857

P
PaDaBoo 已提交
858 859 860 861 862
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.groupBy(["AGE", "NAME"])
```
Z
zengyawen 已提交
863 864 865 866


### indexedBy

Z
zengyawen 已提交
867
indexedBy(field: string): RdbPredicates
Z
zengyawen 已提交
868 869 870

配置RdbPredicates以指定索引列。

P
PaDaBoo 已提交
871
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
872

P
PaDaBoo 已提交
873
**参数:**
Z
zengyawen 已提交
874 875 876
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 索引列的名称。 |
Z
zengyawen 已提交
877

Z
zengyawen 已提交
878
**返回值**
Z
zengyawen 已提交
879 880 881 882

| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回具有指定索引列的RdbPredicates。 |
Z
zengyawen 已提交
883

P
PaDaBoo 已提交
884 885 886 887 888
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.indexedBy("SALARY_INDEX")
```
Z
zengyawen 已提交
889 890 891 892 893 894


### in

in(field: string, value: Array&lt;ValueType&gt;): RdbPredicates

Z
zengyawen 已提交
895 896 897

配置RdbPredicates以匹配数据字段为ValueType数组且值在给定范围内的指定字段。

P
PaDaBoo 已提交
898
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
899

P
PaDaBoo 已提交
900
**参数:**
Z
zengyawen 已提交
901 902 903 904
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType型数组形式指定的要匹配的值。 |
Z
zengyawen 已提交
905 906


Z
zengyawen 已提交
907
**返回值**
Z
zengyawen 已提交
908 909 910
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
911

P
PaDaBoo 已提交
912 913 914 915 916
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.in("AGE", [18, 20])
```
Z
zengyawen 已提交
917 918 919 920 921 922


### notIn

notIn(field: string, value: Array&lt;ValueType&gt;): RdbPredicates

Z
zengyawen 已提交
923 924 925

将RdbPredicates配置为匹配数据字段为ValueType且值超出给定范围的指定字段。

P
PaDaBoo 已提交
926
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
927

P
PaDaBoo 已提交
928
**参数:**
Z
zengyawen 已提交
929 930 931 932
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array&lt;[ValueType](#valuetype)&gt; | 是 | 以ValueType数组形式指定的要匹配的值。 |
Z
zengyawen 已提交
933 934


Z
zengyawen 已提交
935
**返回值**
Z
zengyawen 已提交
936 937 938
| 类型 | 说明 |
| -------- | -------- |
| [RdbPredicates](#rdbpredicates) | 返回与指定字段匹配的谓词。 |
Z
zengyawen 已提交
939

P
PaDaBoo 已提交
940 941 942 943 944
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notIn("NAME", ["Lisa", "Rose"])
```
Z
zengyawen 已提交
945 946 947 948 949 950


## RdbStore

提供管理关系数据库(RDB)方法的接口。

951 952
在使用以下相关接口前,请使用[executeSql](#executesql)接口初始化数据库表结构和相关数据,具体可见[关系型数据库开发指导](../../database/database-relational-guidelines.md)

Z
zengyawen 已提交
953 954 955

### insert

956
insert(table: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
957

W
wangxiyue 已提交
958
向目标表中插入一行数据,使用callback异步回调。
Z
zengyawen 已提交
959

P
PaDaBoo 已提交
960
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
961

P
PaDaBoo 已提交
962
**参数:**
Z
zengyawen 已提交
963 964
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
965
| table | string | 是 | 指定的目标表名。 |
Z
zengyawen 已提交
966 967
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |
Z
zengyawen 已提交
968

P
PaDaBoo 已提交
969 970 971 972 973 974 975 976
**示例:**
```js
const valueBucket = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
W
wangxiyue 已提交
977 978 979 980
rdbStore.insert("EMPLOYEE", valueBucket, function (status, rowId) {
    if (status) {
        console.log("Insert is failed");
        return;
P
PaDaBoo 已提交
981
    }
W
wangxiyue 已提交
982
    console.log("Insert is successful, rowId = " + rowId);
P
PaDaBoo 已提交
983 984
})
```
Z
zengyawen 已提交
985 986 987 988


### insert

989
insert(table: string, values: ValuesBucket):Promise&lt;number&gt;
Z
zengyawen 已提交
990

W
wangxiyue 已提交
991
向目标表中插入一行数据,使用Promise异步回调。
Z
zengyawen 已提交
992

P
PaDaBoo 已提交
993
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
994

P
PaDaBoo 已提交
995
**参数:**
Z
zengyawen 已提交
996 997
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
998
| table | string | 是 | 指定的目标表名。 |
Z
zengyawen 已提交
999
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
Z
zengyawen 已提交
1000

Z
zengyawen 已提交
1001
**返回值**
Z
zengyawen 已提交
1002 1003 1004
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。如果操作成功,返回行ID;否则返回-1。 |
Z
zengyawen 已提交
1005

P
PaDaBoo 已提交
1006 1007 1008 1009 1010 1011 1012 1013 1014
**示例:**
```js
const valueBucket = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let promise = rdbStore.insert("EMPLOYEE", valueBucket)
W
wangxiyue 已提交
1015 1016 1017 1018
promise.then((rowId) => {
    console.log("Insert is successful, rowId = " + rowId);
}).catch((status) => {
    console.log("Insert is failed");
P
PaDaBoo 已提交
1019 1020
})
```
Z
zengyawen 已提交
1021

W
wangxiyue 已提交
1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115
### batchInsert<sup>9+</sup>

batchInsert(table: string, values: Array&lt;ValuesBucket&gt;, callback: AsyncCallback&lt;number&gt;):void

向目标表中插入一组数据,使用callback异步回调。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
| values | Array&lt;[ValuesBucket](#valuesbucket)&gt; | 是 | 表示要插入到表中的一组数据。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回插入的数据个数,否则返回-1。 |

**示例:**
```js
const valueBucket1 = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5])
}
const valueBucket2 = {
    "NAME": "Jack",
    "AGE": 19,
    "SALARY": 101.5,
    "CODES": new Uint8Array([6, 7, 8, 9, 10])
}
const valueBucket3 = {
    "NAME": "Tom",
    "AGE": 20,
    "SALARY": 102.5,
    "CODES": new Uint8Array([11, 12, 13, 14, 15])
}

var valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3);
rdbStore.batchInsert("EMPLOYEE", valueBuckets, function(status, insertNum) {
    if (status) {
        console.log("bathInsert is failed, status = " + status);
        return;
    }
    console.log("bathInsert is successful, the number of values that were inserted = " + insertNum);
})
```

### batchInsert<sup>9+</sup>

batchInsert(table: string, values: Array&lt;ValuesBucket&gt;):Promise&lt;number&gt;

向目标表中插入一组数据,使用Promise异步回调。

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
| values | Array&lt;[ValuesBucket](#valuesbucket)&gt; | 是 | 表示要插入到表中的一组数据。 |

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。如果操作成功,返回插入的数据个数,否则返回-1。 |

**示例:**
```js
const valueBucket1 = {
    "NAME": "Lisa",
    "AGE": 18,
    "SALARY": 100.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5])
}
const valueBucket2 = {
    "NAME": "Jack",
    "AGE": 19,
    "SALARY": 101.5,
    "CODES": new Uint8Array([6, 7, 8, 9, 10])
}
const valueBucket3 = {
    "NAME": "Tom",
    "AGE": 20,
    "SALARY": 102.5,
    "CODES": new Uint8Array([11, 12, 13, 14, 15])
}

var valueBuckets = new Array(valueBucket1, valueBucket2, valueBucket3);
let promise = rdbStore.batchInsert("EMPLOYEE", valueBuckets);
promise.then((insertNum) => {
    console.log("bathInsert is successful, the number of values that were inserted = " + insertNum);
}).catch((status) => {
    console.log("bathInsert is failed, status = " + status);
})
```
Z
zengyawen 已提交
1116 1117 1118

### update

1119
update(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1120

W
wangxiyue 已提交
1121
根据RdbPredicates的指定实例对象更新数据库中的数据,使用callback异步回调。
Z
zengyawen 已提交
1122

P
PaDaBoo 已提交
1123
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1124

P
PaDaBoo 已提交
1125
**参数:**
Z
zengyawen 已提交
1126 1127
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1128 1129
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 |
Z
zengyawen 已提交
1130
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |
Z
zengyawen 已提交
1131

P
PaDaBoo 已提交
1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149
**示例:**
```js
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.update(valueBucket, predicates, function (err, ret) {
    if (err) {
        console.info("Updated failed, err: " + err)
        return
    }
    console.log("Updated row count: " + ret)
})
```
Z
zengyawen 已提交
1150 1151 1152 1153


### update

1154
update(values: ValuesBucket, predicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1155

W
wangxiyue 已提交
1156
根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。
Z
zengyawen 已提交
1157

P
PaDaBoo 已提交
1158
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1159

P
PaDaBoo 已提交
1160
**参数:**
Z
zengyawen 已提交
1161 1162
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1163 1164
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 |
Z
zengyawen 已提交
1165

Z
zengyawen 已提交
1166
**返回值**
Z
zengyawen 已提交
1167 1168 1169
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定的Promise回调方法。返回受影响的行数。 |
Z
zengyawen 已提交
1170

P
PaDaBoo 已提交
1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187
**示例:**
```js
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.update(valueBucket, predicates)
promise.then(async (ret) => {
    console.log("Updated row count: " + ret)
}).catch((err) => {
    console.info("Updated failed, err: " + err)
})
```
Z
zengyawen 已提交
1188

1189
### update<sup>9+</sup>
L
ltdong 已提交
1190
update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
1191

W
wangxiyue 已提交
1192
根据DataSharePredicates的指定实例对象更新数据库中的数据,使用callback异步回调。
1193 1194 1195 1196 1197 1198 1199

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
W
wuyongning 已提交
1200
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
1201
| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates)| 是 |  DataSharePredicates的实例对象指定的更新条件。 |
1202 1203 1204 1205
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1206
import dataSharePredicates from '@ohos.data.dataSharePredicates'
1207 1208 1209 1210 1211 1212
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
L
ltdong 已提交
1213
let predicates = new dataSharePredicates.DataSharePredicates()
1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224
predicates.equalTo("NAME", "Lisa")
rdbStore.update("EMPLOYEE", valueBucket, predicates, function (err, ret) {
    if (err) {
        console.info("Updated failed, err: " + err)
        return
    }
    console.log("Updated row count: " + ret)
})
```
### update<sup>9+</sup>

W
wuyongning 已提交
1225
update(table: string, values: ValuesBucket, predicates: dataSharePredicates.DataSharePredicates):Promise&lt;number&gt;
1226

W
wangxiyue 已提交
1227
根据DataSharePredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。
1228 1229 1230 1231 1232 1233 1234

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
W
wuyongning 已提交
1235
| values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
1236
| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的更新条件。 |
1237 1238 1239 1240 1241 1242 1243 1244

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定的Promise回调方法。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1245
import dataSharePredicates from '@ohos.data.dataSharePredicates'
1246 1247 1248 1249 1250 1251
const valueBucket = {
    "NAME": "Rose",
    "AGE": 22,
    "SALARY": 200.5,
    "CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
L
ltdong 已提交
1252
let predicates = new dataSharePredicates.DataSharePredicates()
1253 1254 1255 1256 1257 1258 1259 1260
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.update("EMPLOYEE", valueBucket, predicates)
promise.then(async (ret) => {
    console.log("Updated row count: " + ret)
}).catch((err) => {
    console.info("Updated failed, err: " + err)
})
```
Z
zengyawen 已提交
1261 1262 1263

### delete

1264
delete(predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
Z
zengyawen 已提交
1265

Z
zengyawen 已提交
1266

W
wangxiyue 已提交
1267
根据RdbPredicates的指定实例对象从数据库中删除数据,使用callback异步回调。
Z
zengyawen 已提交
1268

P
PaDaBoo 已提交
1269
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
1270

P
PaDaBoo 已提交
1271
**参数:**
Z
zengyawen 已提交
1272 1273
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1274
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
Z
zengyawen 已提交
1275
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |
Z
zengyawen 已提交
1276

P
PaDaBoo 已提交
1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.delete(predicates, function (err, rows) {
    if (err) {
        console.info("Delete failed, err: " + err)
        return
    }
    console.log("Delete rows: " + rows)
})
```
Z
zengyawen 已提交
1289 1290 1291 1292


### delete

1293
delete(predicates: RdbPredicates):Promise&lt;number&gt;
Z
zengyawen 已提交
1294

W
wangxiyue 已提交
1295
根据RdbPredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。
Z
zengyawen 已提交
1296

P
PaDaBoo 已提交
1297
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1298

P
PaDaBoo 已提交
1299
**参数:**
Z
zengyawen 已提交
1300 1301
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1302
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
Z
zengyawen 已提交
1303

Z
zengyawen 已提交
1304
**返回值**
Z
zengyawen 已提交
1305 1306 1307
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。返回受影响的行数。 |
Z
zengyawen 已提交
1308

P
PaDaBoo 已提交
1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.delete(predicates)
promise.then((rows) => {
    console.log("Delete rows: " + rows)
}).catch((err) => {
    console.info("Delete failed, err: " + err)
})
```
Z
zengyawen 已提交
1320

1321 1322
### delete<sup>9+</sup>

W
wuyongning 已提交
1323
delete(table: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback&lt;number&gt;):void
1324 1325


W
wangxiyue 已提交
1326
根据DataSharePredicates的指定实例对象从数据库中删除数据,使用callback异步回调。
1327 1328 1329 1330 1331 1332 1333

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
1334
| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 |  DataSharePredicates的实例对象指定的删除条件。 |
1335 1336 1337 1338
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1339 1340
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351
predicates.equalTo("NAME", "Lisa")
rdbStore.delete("EMPLOYEE", predicates, function (err, rows) {
    if (err) {
        console.info("Delete failed, err: " + err)
        return
    }
    console.log("Delete rows: " + rows)
})
```
### delete<sup>9+</sup>

L
ltdong 已提交
1352
delete(table: string, predicates: dataSharePredicates.DataSharePredicates):Promise&lt;number&gt;
1353

W
wangxiyue 已提交
1354
根据DataSharePredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。
1355 1356 1357 1358 1359 1360 1361

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| table | string | 是 | 指定的目标表名。 |
1362
| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的删除条件。 |
1363 1364 1365 1366 1367 1368 1369 1370

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 指定Promise回调函数。返回受影响的行数。 |

**示例:**
```js
L
ltdong 已提交
1371 1372
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1373 1374 1375 1376 1377 1378 1379 1380
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.delete("EMPLOYEE", predicates)
promise.then((rows) => {
    console.log("Delete rows: " + rows)
}).catch((err) => {
    console.info("Delete failed, err: " + err)
})
```
Z
zengyawen 已提交
1381 1382 1383

### query

1384
query(predicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
Z
zengyawen 已提交
1385

W
wangxiyue 已提交
1386
根据指定条件查询数据库中的数据,使用callback异步回调。
Z
zengyawen 已提交
1387

P
PaDaBoo 已提交
1388
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1389

P
PaDaBoo 已提交
1390
**参数:**
Z
zengyawen 已提交
1391 1392
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1393
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 |
Z
zengyawen 已提交
1394 1395
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
Z
zengyawen 已提交
1396

P
PaDaBoo 已提交
1397 1398 1399 1400 1401 1402 1403 1404 1405
**示例:**
```js
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose")
rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
W
wuyongning 已提交
1406 1407
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
P
PaDaBoo 已提交
1408 1409
})
```
Z
zengyawen 已提交
1410 1411 1412 1413


### query

1414
query(predicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
Z
zengyawen 已提交
1415

W
wangxiyue 已提交
1416
根据指定条件查询数据库中的数据,使用Promise异步回调。
Z
zengyawen 已提交
1417

P
PaDaBoo 已提交
1418
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1419

P
PaDaBoo 已提交
1420
**参数:**
Z
zengyawen 已提交
1421 1422
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1423
| predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 |
Z
zengyawen 已提交
1424
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
Z
zengyawen 已提交
1425

Z
zengyawen 已提交
1426
**返回值**
Z
zengyawen 已提交
1427 1428
| 类型 | 说明 |
| -------- | -------- |
1429
| Promise&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
Z
zengyawen 已提交
1430

P
PaDaBoo 已提交
1431
**示例:**
G
ge-yafang 已提交
1432
  ```js
P
PaDoBoo 已提交
1433
  let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
Z
zengyawen 已提交
1434
  predicates.equalTo("NAME", "Rose")
P
PaDaBoo 已提交
1435 1436
  let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
  promise.then((resultSet) => {
W
wuyongning 已提交
1437 1438
      console.log("ResultSet column names: " + resultSet.columnNames)
      console.log("ResultSet column count: " + resultSet.columnCount)
W
wuyongning 已提交
1439
  }).catch((err) => {
P
PaDaBoo 已提交
1440
      console.info("Query failed, err: " + err)
W
wuyongning 已提交
1441
  })
Z
zengyawen 已提交
1442 1443
  ```

1444 1445
### query<sup>9+</sup>

1446
query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
1447

W
wangxiyue 已提交
1448
根据指定条件查询数据库中的数据,使用callback异步回调。
1449 1450 1451 1452 1453 1454

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1455
| table | string | 是 | 指定的目标表名。 |
1456
| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
1457 1458 1459 1460
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |

**示例:**
1461

1462
```js
L
ltdong 已提交
1463 1464
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1465 1466 1467 1468 1469 1470
predicates.equalTo("NAME", "Rose")
rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
W
wuyongning 已提交
1471 1472
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
1473 1474 1475 1476 1477
})
```

### query<sup>9+</sup>

1478
query(table: string, predicates: dataSharePredicates.DataSharePredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
1479

W
wangxiyue 已提交
1480
根据指定条件查询数据库中的数据,使用Promise异步回调。
1481 1482 1483 1484 1485 1486

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
1487
| table | string | 是 | 指定的目标表名。 |
1488
| predicates | [DataSharePredicates](js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | DataSharePredicates的实例对象指定的查询条件。 |
1489 1490 1491
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |

**返回值**
L
li_juntao 已提交
1492

1493 1494 1495 1496 1497 1498
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |

**示例:**
```js
L
ltdong 已提交
1499 1500
import dataSharePredicates from '@ohos.data.dataSharePredicates'
let predicates = new dataSharePredicates.DataSharePredicates()
1501 1502 1503
predicates.equalTo("NAME", "Rose")
let promise = rdbStore.query("EMPLOYEE", predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) => {
W
wuyongning 已提交
1504 1505
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
1506 1507 1508 1509
}).catch((err) => {
    console.info("Query failed, err: " + err)
})
```
Z
zengyawen 已提交
1510

1511 1512
### remoteQuery<sup>9+</sup>

L
li_juntao 已提交
1513
remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array&lt;string&gt; , callback: AsyncCallback&lt;ResultSet&gt;): void
1514

L
li_juntao 已提交
1515
根据指定条件查询远程设备数据库中的数据。使用callback异步回调。
1516

L
li_juntao 已提交
1517
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
1518 1519

**参数:**
L
li_juntao 已提交
1520

1521 1522
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
li_juntao 已提交
1523
| device | string | 是 | 指定的远程设备的networkId。 |
1524
| table | string | 是 | 指定的目标表名。 |
L
li_juntao 已提交
1525
| predicates | [RdbPredicates](#rdbpredicates)  | 是 | RdbPredicates的实例对象,指定查询的条件。 |
1526
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
L
li_juntao 已提交
1527
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md#resultset)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
1528 1529

**示例:**
L
li_juntao 已提交
1530

1531 1532
```js
let predicates = new rdb.RdbPredicates('EPLOYEE')
L
li_juntao 已提交
1533 1534 1535
predicates.greaterThan("id", 0)
rdbStore.remoteQuery("deviceId", "EPLOYEE", predicates, function(err, resultSet){
    if (err) {
L
li_juntao 已提交
1536
        console.info("Failed to remoteQuery, err: " + err)
L
li_juntao 已提交
1537 1538 1539 1540
        return
    }
    console.info("ResultSet column names: " + resultSet.columnNames)
    console.info("ResultSet column count: " + resultSet.columnCount)
1541 1542 1543 1544 1545
})
```

### remoteQuery<sup>9+</sup>

L
li_juntao 已提交
1546
remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array&lt;string&gt;): Promise&lt;ResultSet&gt;
1547

L
li_juntao 已提交
1548
根据指定条件查询远程设备数据库中的数据。使用Promise异步回调。
1549

L
li_juntao 已提交
1550
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
1551 1552 1553 1554 1555

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
li_juntao 已提交
1556
| device | string | 是 | 指定的远程设备的networkId。 |
1557
| table | string | 是 | 指定的目标表名。 |
L
li_juntao 已提交
1558
| predicates | [RdbPredicates](#rdbpredicates)  | 是 | RdbPredicates的实例对象,指定查询的条件。 |
1559 1560
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |

L
li_juntao 已提交
1561 1562 1563 1564 1565 1566
**返回值**

| 类型                                                         | 说明                                                     |
| ------------------------------------------------------------ | -------------------------------------------------------- |
| Promise&lt;[ResultSet](js-apis-data-resultset.md#resultset)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |

1567 1568 1569 1570
**示例:**

```js
let predicates = new rdb.RdbPredicates('EPLOYEE')
L
li_juntao 已提交
1571 1572 1573 1574 1575 1576
predicates.greaterThan("id", 0)
let promise = rdbStore.remoteQuery("deviceId", "EMPLOYEE", predicates)
promise.then((resultSet) => {
    console.info("ResultSet column names: " + resultSet.columnNames)
    console.info("ResultSet column count: " + resultSet.columnCount)
}).catch((err) => {
L
li_juntao 已提交
1577
    console.info("Failed to remoteQuery , err: " + err)
1578 1579 1580
})
```

M
mangtsang 已提交
1581 1582 1583 1584
### querySql<sup>8+</sup>

querySql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void

W
wangxiyue 已提交
1585
根据指定SQL语句查询数据库中的数据,使用callback异步回调。
M
mangtsang 已提交
1586

P
PaDaBoo 已提交
1587
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1588

P
PaDaBoo 已提交
1589
**参数:**
Z
zengyawen 已提交
1590 1591 1592 1593 1594
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
M
mangtsang 已提交
1595

P
PaDaBoo 已提交
1596 1597 1598 1599 1600 1601 1602
**示例:**
```js
rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) {
    if (err) {
        console.info("Query failed, err: " + err)
        return
    }
W
wuyongning 已提交
1603 1604
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
P
PaDaBoo 已提交
1605 1606
})
```
M
mangtsang 已提交
1607 1608 1609 1610 1611 1612


### querySql<sup>8+</sup>

querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt;

W
wangxiyue 已提交
1613
根据指定SQL语句查询数据库中的数据,使用Promise异步回调。
M
mangtsang 已提交
1614

P
PaDaBoo 已提交
1615
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1616

P
PaDaBoo 已提交
1617
**参数:**
Z
zengyawen 已提交
1618 1619 1620 1621
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
M
mangtsang 已提交
1622

Z
zengyawen 已提交
1623
**返回值**
Z
zengyawen 已提交
1624 1625
| 类型 | 说明 |
| -------- | -------- |
1626
| Promise&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
M
mangtsang 已提交
1627

P
PaDaBoo 已提交
1628 1629 1630 1631
**示例:**
```js
let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
promise.then((resultSet) => {
W
wuyongning 已提交
1632 1633
    console.log("ResultSet column names: " + resultSet.columnNames)
    console.log("ResultSet column count: " + resultSet.columnCount)
P
PaDaBoo 已提交
1634 1635 1636 1637
}).catch((err) => {
    console.info("Query failed, err: " + err)
})
```
M
mangtsang 已提交
1638 1639


Z
zengyawen 已提交
1640 1641 1642
### executeSql

executeSql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallback&lt;void&gt;):void
Z
zengyawen 已提交
1643

W
wangxiyue 已提交
1644
执行包含指定参数但不返回值的SQL语句,使用callback异步回调。
Z
zengyawen 已提交
1645

P
PaDaBoo 已提交
1646
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1647

P
PaDaBoo 已提交
1648
**参数:**
Z
zengyawen 已提交
1649 1650 1651 1652 1653
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 是 | SQL语句中参数的值。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
Z
zengyawen 已提交
1654

P
PaDaBoo 已提交
1655 1656 1657 1658 1659
**示例:**
```js
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) {
    if (err) {
W
wuyongning 已提交
1660
        console.info("ExecuteSql failed, err: " + err)
P
PaDaBoo 已提交
1661 1662
        return
    }
W
wuyongning 已提交
1663
    console.info('Create table done.')
P
PaDaBoo 已提交
1664 1665
})
```
Z
zengyawen 已提交
1666 1667 1668 1669


### executeSql

M
mangtsang 已提交
1670
executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt;
Z
zengyawen 已提交
1671

W
wangxiyue 已提交
1672
执行包含指定参数但不返回值的SQL语句,使用Promise异步回调。
Z
zengyawen 已提交
1673

P
PaDaBoo 已提交
1674
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1675

P
PaDaBoo 已提交
1676
**参数:**
Z
zengyawen 已提交
1677 1678 1679 1680
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| sql | string | 是 | 指定要执行的SQL语句。 |
| bindArgs | Array&lt;[ValueType](#valuetype)&gt; | 否 | SQL语句中参数的值。 |
Z
zengyawen 已提交
1681

Z
zengyawen 已提交
1682
**返回值**
Z
zengyawen 已提交
1683 1684 1685
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |
Z
zengyawen 已提交
1686

P
PaDaBoo 已提交
1687 1688 1689 1690 1691
**示例:**
```js
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
let promise = rdbStore.executeSql(SQL_CREATE_TABLE)
promise.then(() => {
W
wuyongning 已提交
1692
    console.info('Create table done.')
P
PaDaBoo 已提交
1693 1694 1695 1696
}).catch((err) => {
    console.info("ExecuteSql failed, err: " + err)
})
```
S
sun-dou 已提交
1697

W
wuyongning 已提交
1698 1699 1700 1701 1702 1703
### beginTransaction<sup>8+</sup>

beginTransaction():void

在开始执行SQL语句之前,开始事务。

P
PaDaBoo 已提交
1704
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1705

P
PaDaBoo 已提交
1706
**示例:**
G
ge-yafang 已提交
1707
```js
P
PaDaBoo 已提交
1708 1709 1710 1711 1712 1713 1714
rdbStore.beginTransaction()
const valueBucket = {
    "name": "lisi",
    "age": 18,
    "salary": 100.5,
    "blobType": new Uint8Array([1, 2, 3]),
}
1715
await rdbStore.insert("test", valueBucket)
P
PaDaBoo 已提交
1716
rdbStore.commit()
W
wuyongning 已提交
1717 1718 1719 1720 1721 1722 1723 1724 1725
```


### commit<sup>8+</sup>

commit():void

提交已执行的SQL语句。

P
PaDaBoo 已提交
1726
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1727

P
PaDaBoo 已提交
1728
**示例:**
G
ge-yafang 已提交
1729
```js
P
PaDaBoo 已提交
1730 1731 1732 1733 1734 1735 1736 1737
rdbStore.beginTransaction()
const valueBucket = {
    "name": "lisi",
    "age": 18,
    "salary": 100.5,
    "blobType": new Uint8Array([1, 2, 3]),
}

1738
await rdbStore.insert("test", valueBucket)
P
PaDaBoo 已提交
1739
rdbStore.commit()
W
wuyongning 已提交
1740 1741 1742 1743 1744
```


### rollBack<sup>8+</sup>

1745
rollBack():void
W
wuyongning 已提交
1746 1747 1748

回滚已经执行的SQL语句。

P
PaDaBoo 已提交
1749
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1750

P
PaDaBoo 已提交
1751
**示例:**
G
ge-yafang 已提交
1752
```js
P
PaDaBoo 已提交
1753 1754 1755 1756 1757 1758 1759 1760 1761
try {
    rdbStore.beginTransaction()
    const valueBucket = {
        "id": 1,
        "name": "lisi",
        "age": 18,
        "salary": 100.5,
        "blobType": new Uint8Array([1, 2, 3]),
    }
1762
    await rdbStore.insert("test", valueBucket)
P
PaDaBoo 已提交
1763 1764 1765 1766
    rdbStore.commit()
} catch (e) {
    rdbStore.rollBack()
}
W
wuyongning 已提交
1767 1768
```

1769 1770 1771 1772
### backup<sup>9+</sup>

backup(destName:string, callback: AsyncCallback&lt;void&gt;):void

W
wangxiyue 已提交
1773
以指定名称备份数据库,使用callback异步回调。
1774 1775 1776 1777 1778 1779

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1780
| destName | string | 是 | 指定数据库的备份文件名。 |
1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |

**示例:**
```js
rdbStore.backup("dbBackup.db", function(err) {
    if (err) {
        console.info('Backup failed, err: ' + err)
        return
    }
    console.info('Backup success.')
})
W
wuyongning 已提交
1792
```
1793 1794 1795 1796 1797

### backup<sup>9+</sup>

backup(destName:string): Promise&lt;void&gt;

W
wangxiyue 已提交
1798
以指定名称备份数据库,使用Promise异步回调。
1799 1800 1801 1802 1803 1804

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
wuyongning 已提交
1805
| destName | string | 是 | 指定数据库的备份文件名。 |
1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |

**示例:**
```js
let promiseBackup = rdbStore.backup("dbBackup.db")
promiseBackup.then(()=>{
    console.info('Backup success.')
}).catch((err)=>{
    console.info('Backup failed, err: ' + err)
})
W
wuyongning 已提交
1820
```
1821 1822 1823 1824 1825

### restore<sup>9+</sup>

restore(srcName:string, callback: AsyncCallback&lt;void&gt;):void

W
wangxiyue 已提交
1826
从指定的数据库备份文件恢复数据库,使用callback异步回调。
1827 1828 1829 1830 1831 1832

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
update  
wuyongning 已提交
1833
| srcName | string | 是 | 指定数据库的备份文件名。 |
1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |

**示例:**
```js
rdbStore.restore("dbBackup.db", function(err) {
    if (err) {
        console.info('Restore failed, err: ' + err)
        return
    }
    console.info('Restore success.')
})
W
wuyongning 已提交
1845
```
1846 1847 1848

### restore<sup>9+</sup>

W
update  
wuyongning 已提交
1849
restore(srcName:string): Promise&lt;void&gt;
1850

W
wangxiyue 已提交
1851
从指定的数据库备份文件恢复数据库,使用Promise异步回调。
1852 1853 1854 1855 1856 1857

**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。

**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
W
update  
wuyongning 已提交
1858
| srcName | string | 是 | 指定数据库的备份文件名。 |
1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872

**返回值**
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |

**示例:**
```js
let promiseRestore = rdbStore.restore("dbBackup.db")
promiseRestore.then(()=>{
    console.info('Restore success.')
}).catch((err)=>{
    console.info('Restore failed, err: ' + err)
})
W
wuyongning 已提交
1873
```
W
wuyongning 已提交
1874

Z
zengyawen 已提交
1875
### setDistributedTables<sup>8+</sup>
S
sun-dou 已提交
1876

W
wuyongning 已提交
1877
setDistributedTables(tables: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
S
sun-dou 已提交
1878

W
wangxiyue 已提交
1879
设置分布式列表,使用callback异步回调。
S
sun-dou 已提交
1880

W
wuyongning 已提交
1881 1882
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1883
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1884

P
PaDaBoo 已提交
1885
**参数:**
Z
zengyawen 已提交
1886 1887 1888 1889
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名 |
| callback | AsyncCallback&lt;void&gt; | 是 | 指定callback回调函数。 |
S
sun-dou 已提交
1890

P
PaDaBoo 已提交
1891 1892 1893 1894
**示例:**
```js
rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
    if (err) {
W
wuyongning 已提交
1895
        console.info('SetDistributedTables failed, err: ' + err)
P
PaDaBoo 已提交
1896 1897
        return
    }
W
wuyongning 已提交
1898
    console.info('SetDistributedTables successfully.')
P
PaDaBoo 已提交
1899
})
1900
```
S
sun-dou 已提交
1901 1902


Z
zengyawen 已提交
1903
### setDistributedTables<sup>8+</sup>
S
sun-dou 已提交
1904

W
wuyongning 已提交
1905
 setDistributedTables(tables: Array&lt;string&gt;): Promise&lt;void&gt;
S
sun-dou 已提交
1906

W
wangxiyue 已提交
1907
设置分布式列表,使用Promise异步回调。
S
sun-dou 已提交
1908

W
wuyongning 已提交
1909 1910
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1911
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1912

P
PaDaBoo 已提交
1913
**参数:**
Z
zengyawen 已提交
1914 1915 1916
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| tables | Array&lt;string&gt; | 是 | 要设置的分布式列表表名。 |
S
sun-dou 已提交
1917

Z
zengyawen 已提交
1918
**返回值**
Z
zengyawen 已提交
1919 1920 1921
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | 指定Promise回调函数。 |
S
sun-dou 已提交
1922

P
PaDaBoo 已提交
1923 1924 1925 1926
**示例:**
```js
let promise = rdbStore.setDistributedTables(["EMPLOYEE"])
promise.then(() => {
W
wuyongning 已提交
1927
    console.info("SetDistributedTables successfully.")
P
PaDaBoo 已提交
1928
}).catch((err) => {
W
wuyongning 已提交
1929
    console.info("SetDistributedTables failed, err: " + err)
P
PaDaBoo 已提交
1930 1931
})
```
S
sun-dou 已提交
1932

Z
zengyawen 已提交
1933
### obtainDistributedTableName<sup>8+</sup>
S
sun-dou 已提交
1934

W
wuyongning 已提交
1935
obtainDistributedTableName(device: string, table: string, callback: AsyncCallback&lt;string&gt;): void
S
sun-dou 已提交
1936

W
wangxiyue 已提交
1937
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。
S
sun-dou 已提交
1938

W
wuyongning 已提交
1939 1940
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1941
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1942

P
PaDaBoo 已提交
1943
**参数:**
Z
zengyawen 已提交
1944 1945 1946 1947 1948
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备 。|
| table | string | 是 | 本地表名。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |
S
sun-dou 已提交
1949

P
PaDaBoo 已提交
1950 1951
**示例:**
```js
W
wuyongning 已提交
1952
rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tableName) {
P
PaDaBoo 已提交
1953
    if (err) {
W
wuyongning 已提交
1954
        console.info('ObtainDistributedTableName failed, err: ' + err)
P
PaDaBoo 已提交
1955 1956
        return
    }
W
wuyongning 已提交
1957
    console.info('ObtainDistributedTableName successfully, tableName=.' + tableName)
P
PaDaBoo 已提交
1958 1959
})
```
S
sun-dou 已提交
1960 1961


Z
zengyawen 已提交
1962
### obtainDistributedTableName<sup>8+</sup>
S
sun-dou 已提交
1963

W
wuyongning 已提交
1964
 obtainDistributedTableName(device: string, table: string): Promise&lt;string&gt;
S
sun-dou 已提交
1965

W
wangxiyue 已提交
1966
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
S
sun-dou 已提交
1967

W
wuyongning 已提交
1968 1969
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
1970
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
1971

P
PaDaBoo 已提交
1972
**参数:**
Z
zengyawen 已提交
1973 1974 1975 1976
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备。 |
| table | string | 是 | 本地表名。 |
S
sun-dou 已提交
1977

Z
zengyawen 已提交
1978
**返回值**
Z
zengyawen 已提交
1979 1980 1981
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;string&gt; | 指定Promise回调函数。如果操作成功,返回远程设备的分布式表名。 |
S
sun-dou 已提交
1982

P
PaDaBoo 已提交
1983 1984
**示例:**
```js
W
wuyongning 已提交
1985
let promise = rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE")
P
PaDaBoo 已提交
1986
promise.then((tableName) => {
W
wuyongning 已提交
1987
    console.info('ObtainDistributedTableName successfully, tableName= ' + tableName)
P
PaDaBoo 已提交
1988
}).catch((err) => {
W
wuyongning 已提交
1989
    console.info('ObtainDistributedTableName failed, err: ' + err)
P
PaDaBoo 已提交
1990 1991
})
```
S
sun-dou 已提交
1992

W
wuyongning 已提交
1993
### sync<sup>8+</sup>
S
sun-dou 已提交
1994

W
wuyongning 已提交
1995
sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback&lt;Array&lt;[string, number]&gt;&gt;): void
S
sun-dou 已提交
1996

W
wangxiyue 已提交
1997
在设备之间同步数据, 使用callback异步回调。
S
sun-dou 已提交
1998

W
wuyongning 已提交
1999 2000
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
2001
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2002

P
PaDaBoo 已提交
2003
**参数:**
Z
zengyawen 已提交
2004 2005 2006 2007 2008
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [SyncMode](#syncmode8) | 是 | 指同步模式。该值可以是推、拉。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 |
| callback | AsyncCallback&lt;Array&lt;[string, number]&gt;&gt; | 是 | 指定的callback回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。|
S
sun-dou 已提交
2009

P
PaDaBoo 已提交
2010 2011
**示例:**
```js
W
wuyongning 已提交
2012
let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
P
PaDaBoo 已提交
2013
predicates.inDevices(['12345678abcde'])
W
wuyongning 已提交
2014
rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) {
P
PaDaBoo 已提交
2015
    if (err) {
W
wuyongning 已提交
2016
        console.log('Sync failed, err: ' + err)
P
PaDaBoo 已提交
2017 2018
        return
    }
W
wuyongning 已提交
2019
    console.log('Sync done.')
P
PaDaBoo 已提交
2020 2021 2022 2023 2024
    for (let i = 0; i < result.length; i++) {
        console.log('device=' + result[i][0] + ' status=' + result[i][1])
    }
})
```
S
sun-dou 已提交
2025 2026


W
wuyongning 已提交
2027
### sync<sup>8+</sup>
S
sun-dou 已提交
2028

W
wuyongning 已提交
2029
 sync(mode: SyncMode, predicates: RdbPredicates): Promise&lt;Array&lt;[string, number]&gt;&gt;
S
sun-dou 已提交
2030

W
wangxiyue 已提交
2031
在设备之间同步数据,使用Promise异步回调。
S
sun-dou 已提交
2032

W
wuyongning 已提交
2033 2034
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
2035
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2036

P
PaDaBoo 已提交
2037
**参数:**
Z
zengyawen 已提交
2038 2039 2040 2041
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [SyncMode](#syncmode8) | 是 | 指同步模式。该值可以是推、拉。 |
| predicates | [RdbPredicates](#rdbpredicates) | 是 | 约束同步数据和设备。 |
S
sun-dou 已提交
2042

Z
zengyawen 已提交
2043
**返回值**
Z
zengyawen 已提交
2044 2045 2046 2047

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;Array&lt;[string, number]&gt;&gt; | 指定Promise回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
S
sun-dou 已提交
2048

P
PaDaBoo 已提交
2049 2050 2051 2052 2053 2054
**示例:**
```js
let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde'])
let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates)
promise.then((result) =>{
W
wuyongning 已提交
2055
    console.log('Sync done.')
P
PaDaBoo 已提交
2056 2057 2058 2059
    for (let i = 0; i < result.length; i++) {
        console.log('device=' + result[i][0] + ' status=' + result[i][1])
    }
}).catch((err) => {
W
wuyongning 已提交
2060
    console.log('Sync failed')
P
PaDaBoo 已提交
2061 2062
})
```
S
sun-dou 已提交
2063

Z
zengyawen 已提交
2064
### on('dataChange')<sup>8+</sup>
S
sun-dou 已提交
2065

W
wuyongning 已提交
2066
on(event: 'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
2067 2068 2069

注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。

W
wuyongning 已提交
2070 2071
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
2072
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2073

P
PaDaBoo 已提交
2074
**参数:**
Z
zengyawen 已提交
2075

Z
zengyawen 已提交
2076 2077 2078 2079 2080
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 取值为'dataChange',表示数据更改。 |
| type | [SubscribeType](#subscribetype8) | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
| observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指分布式数据库中数据更改事件的观察者。 |
S
sun-dou 已提交
2081

P
PaDaBoo 已提交
2082 2083 2084 2085 2086 2087 2088 2089 2090 2091
**示例:**
```js
function storeObserver(devices) {
    for (let i = 0; i < devices.length; i++) {
        console.log('device=' + devices[i] + ' data changed')
    }
}
try {
    rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
W
wuyongning 已提交
2092
    console.log('Register observer failed')
P
PaDaBoo 已提交
2093 2094
}
```
S
sun-dou 已提交
2095

Z
zengyawen 已提交
2096
### off('dataChange')<sup>8+</sup>
S
sun-dou 已提交
2097

W
wuyongning 已提交
2098
off(event:'dataChange', type: SubscribeType, observer: Callback&lt;Array&lt;string&gt;&gt;): void
S
sun-dou 已提交
2099

W
wangxiyue 已提交
2100
从数据库中删除指定类型的指定观察者, 使用callback异步回调。
S
sun-dou 已提交
2101

W
wuyongning 已提交
2102 2103
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
2104
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2105

P
PaDaBoo 已提交
2106
**参数:**
Z
zengyawen 已提交
2107

Z
zengyawen 已提交
2108 2109 2110 2111 2112
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 取值为'dataChange',表示数据更改。 |
| type | [SubscribeType](#subscribetype8)    | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
| observer | Callback&lt;Array&lt;string&gt;&gt; | 是 | 指已注册的数据更改观察者。|
S
sun-dou 已提交
2113

P
PaDaBoo 已提交
2114 2115 2116 2117 2118 2119 2120 2121 2122 2123
**示例:**
```js
function storeObserver(devices) {
    for (let i = 0; i < devices.length; i++) {
        console.log('device=' + devices[i] + ' data changed')
    }
}
try {
    rdbStore.off('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {
W
wuyongning 已提交
2124
    console.log('Unregister observer failed')
P
PaDaBoo 已提交
2125 2126
}
```
S
sun-dou 已提交
2127

Z
zengyawen 已提交
2128
## StoreConfig
Z
zengyawen 已提交
2129 2130 2131

管理关系数据库配置。

P
PaDaBoo 已提交
2132
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2133

Z
zengyawen 已提交
2134 2135 2136 2137 2138 2139
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 数据库文件名。 |


## ValueType
Z
zengyawen 已提交
2140 2141 2142

用于表示允许的数据字段类型。

P
PaDaBoo 已提交
2143
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2144

2145
| 类型 | 说明 |
Z
zengyawen 已提交
2146 2147 2148
| -------- | -------- |
| number | 表示值类型为数字。 |
| string | 表示值类型为字符。 |
2149
| boolean | 表示值类型为布尔值。|
Z
zengyawen 已提交
2150 2151 2152


## ValuesBucket
Z
zengyawen 已提交
2153

2154
用于存储键值对的类型。
Z
zengyawen 已提交
2155

P
PaDaBoo 已提交
2156
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
Z
zengyawen 已提交
2157

2158 2159 2160
| 键类型 | 值类型 |
| -------- | -------- |
| string | [ValueType](#valuetype)\|&nbsp;Uint8Array&nbsp;\|&nbsp;null | 
S
sun-dou 已提交
2161

W
wuyongning 已提交
2162
## SyncMode<sup>8+</sup>
S
sun-dou 已提交
2163 2164 2165

指数据库同步模式。

P
PaDaBoo 已提交
2166
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
S
sun-dou 已提交
2167

W
wuyongning 已提交
2168 2169 2170 2171 2172 2173
| 名称       | 默认值 | 说明 |
| --------  | ----- |----- |
| SYNC_MODE_PUSH | 0 | 表示数据从本地设备推送到远程设备。 |
| SYNC_MODE_PULL | 1 | 表示数据从远程设备拉至本地设备。 |

## SubscribeType<sup>8+</sup>
S
sun-dou 已提交
2174 2175 2176

描述订阅类型。

W
wuyongning 已提交
2177 2178
**需要权限:** ohos.permission.DISTRIBUTED_DATASYNC

P
PaDaBoo 已提交
2179
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
W
wuyongning 已提交
2180 2181 2182 2183

| 名称      | 默认值 | 说明 |
| -------- | ----- |---- |
| SUBSCRIBE_TYPE_REMOTE | 0 | 订阅远程数据更改。 |