目录
目录
第 1 章 结构化查询语言 DM_SQL 简介 ................................................................ 1
1.1 DM_SQL 语言的特点 ..................................................................................................... 1
1.2 保留字与标识符 ............................................................................................................ 2
1.3 DM_SQL 语言的功能及语句 ......................................................................................... 2
1.4 DM_SQL 所支持的数据类型 ......................................................................................... 3
1.4.1 常规数据类型 .................................................................................................... 3
1.4.2 位串数据类型 .................................................................................................... 5
1.4.3 日期时间数据类型 ............................................................................................ 6
1.4.4 多媒体数据类型 .............................................................................................. 10
1.5 DM_SQL 语言支持的表达式 ....................................................................................... 10
1.5.1 数值表达式 ...................................................................................................... 10
1.5.2 字符串表达式 .................................................................................................. 12
1.5.3 时间值表达式 .................................................................................................. 12
1.5.4 时间间隔值表达式 .......................................................................................... 14
1.5.5 运算符的优先级 .............................................................................................. 15
1.6 DM_SQL 语言支持的数据库模式 ............................................................................... 16
第 2 章 手册中的示例说明 .................................................................................. 17
2.1 示例库说明 .................................................................................................................. 17
2.2 参考脚本 ...................................................................................................................... 25
2.2.1 创建示例库 ...................................................................................................... 25
2.2.2 创建模式及表 .................................................................................................. 25
2.2.3 插入数据 .......................................................................................................... 32
第 3 章 数据定义语句 .......................................................................................... 49
3.1 数据库修改语句 .......................................................................................................... 49
3.2 管理用户 ...................................................................................................................... 52
3.2.1 用户定义语句 .................................................................................................. 52
3.2.2 修改用户语句 .................................................................................................. 57
3.2.3 用户删除语句 .................................................................................................. 59
3.3 管理模式 ...................................................................................................................... 60
3.3.1 模式定义语句 .................................................................................................. 60
3.3.2 设置当前模式语句 .......................................................................................... 62
3.3.3 模式删除语句 .................................................................................................. 62
3.4 管理表空间 .................................................................................................................. 63
3.4.1 表空间定义语句 .............................................................................................. 63
3.4.2 修改表空间语句 .............................................................................................. 64
3.4.3 表空间删除语句 .............................................................................................. 66
3.4.4 表空间失效文件检查 ...................................................................................... 66
I
目录
3.4.5 表空间失效文件恢复准备 .............................................................................. 67
3.4.6 表空间失效文件恢复 ...................................................................................... 67
3.5 管理 HTS 表空间 ......................................................................................................... 67
3.5.1 创建 HTS 表空间 ............................................................................................. 68
3.5.2 删除 HTS 表空间 ............................................................................................. 68
3.6 管理表 .......................................................................................................................... 69
3.6.1 基表定义语句 .................................................................................................. 69
3.6.2 基表修改语句 .................................................................................................. 99
3.6.3 基 表 删 除 语 句 ............................................................................................. 109
3.6.4 基表数据删除语句 ........................................................................................ 110
3.7 管理索引 .................................................................................................................... 111
3.7.1 索引定义语句 ................................................................................................ 111
3.7.2 索引修改语句 ................................................................................................ 116
3.7.3 索引删除语句 ................................................................................................ 117
3.8 管理位图连接索引 .................................................................................................... 118
3.8.1 位图连接索引定义语句 ................................................................................ 118
3.8.2 位图连接索引删除语句 ................................................................................ 120
3.9 管理全文索引 ............................................................................................................ 120
3.9.1 全文索引定义语句 ........................................................................................ 120
3.9.2 全文索引修改语句 ........................................................................................ 121
3.9.3 全文索引删除语句 ........................................................................................ 122
3.10 管理空间索引 .......................................................................................................... 123
3.11 管理数组索引 .......................................................................................................... 123
3.11.1 数组索引定义语句 ..................................................................................... 123
3.11.2 数组索引修改语句 ..................................................................................... 124
3.11.3 数组索引使用 ............................................................................................. 124
3.11.4 数组索引删除语句 ..................................................................................... 126
3.12 管理序列 .................................................................................................................. 126
3.12.1 序列定义语句 ............................................................................................. 126
3.12.2 序列删除语句 ............................................................................................. 128
3.13 管理 SQL 域 ............................................................................................................. 129
3.13.1 创建 DOMAIN ............................................................................................... 129
3.13.2 使用 DOMAIN ............................................................................................... 130
3.13.3 删除 DOMAIN ............................................................................................... 130
3.14 管理上下文 .............................................................................................................. 130
3.14.1 创建上下文 .................................................................................................. 131
3.14.2 删除上下文 .................................................................................................. 132
3.15 约束的启用与禁用 .................................................................................................. 133
3.16 设置当前会话 .......................................................................................................... 134
3.16.1 时区信息 ...................................................................................................... 134
3.16.2 日期串语言 .................................................................................................. 134
3.17 注释语句 .................................................................................................................. 135
3.18 设置 INI 参数 ......................................................................................................... 136
3.18.1 设置会话级别的 INI 参数 ......................................................................... 136
II
目录
3.18.2 设置系统级别的 INI 参数 ......................................................................... 136
3.19 设置列生成统计信息 .............................................................................................. 137
第 4 章 数据查询语句 .........................................................................................139
4.1 单表查询 .................................................................................................................... 148
4.1.1 简单查询 ........................................................................................................ 149
4.1.2 带条件查询 .................................................................................................... 150
4.1.3 集函数 ............................................................................................................ 153
4.1.4 分析函数 ........................................................................................................ 157
4.1.5 情况表达式 .................................................................................................... 172
4.2 连接查询 .................................................................................................................... 175
4.2.1 交叉连接 ........................................................................................................ 175
4.2.2 自然连接(NATURAL JOIN) ...................................................................... 176
4.2.3 JOIN … USING............................................................................................ 177
4.2.4 JOIN…ON........................................................................................................ 177
4.2.5 自连接 ............................................................................................................ 177
4.2.6 内连接(INNER JOIN) ................................................................................ 178
4.2.7 外连接(OUTER JOIN) ................................................................................ 179
4.2.8 哈希连接(HASH JOIN) .............................................................................. 183
4.3 子查询 ........................................................................................................................ 184
4.3.1 标量子查询 .................................................................................................... 184
4.3.2 表子查询 ........................................................................................................ 185
4.3.3 派生表子查询 ................................................................................................ 188
4.3.4 定量比较 ........................................................................................................ 188
4.3.5 带 EXISTS 谓词的子查询 ........................................................................... 189
4.3.6 多列表子查询 ................................................................................................ 190
4.4 WITH 子句 ................................................................................................................ 191
4.4.1 WITH FUNCTION 子句 ............................................................................... 191
4.4.2 公用表表达式子句 ........................................................................................ 192
4.5 合并查询结果 ............................................................................................................. 194
4.6 GROUP BY 和 HAVING 子句 .................................................................................... 196
4.6.1 GROUP BY 子句的使用 ............................................................................... 196
4.6.2 ROLLUP 的使用 ............................................................................................ 197
4.6.3 CUBE 的使用 ................................................................................................. 198
4.6.4 GROUPING 的使用 ....................................................................................... 200
4.6.5 GROUPING SETS 的使用 ........................................................................... 201
4.6.6 GROUPING_ID 的使用 ................................................................................ 202
4.6.7 GROUP_ID 的使用 ....................................................................................... 203
4.6.8 HAVING 子句的使用 .................................................................................... 204
4.7 ORDER BY 子句 ........................................................................................................ 204
4.8 FOR UPDATE 子句 ................................................................................................... 205
4.9 TOP 子句 .................................................................................................................... 206
4.10 LIMIT 限定条件 ..................................................................................................... 207
4.10.1 LIMIT 子句 ................................................................................................ 208
III
目录
4.10.2 ROW_LIMIT 子句 ...................................................................................... 208
4.11 全文检索 .................................................................................................................. 210
4.11.1 全文检索的使用 ......................................................................................... 210
4.11.2 全文检索中文词库的自定义 ...................................................................... 212
4.12 层次查询子句 .......................................................................................................... 215
4.12.1 层次查询子句 ............................................................................................. 215
4.12.2 层次查询相关伪列 ..................................................................................... 216
4.12.3 层次查询相关操作符 ................................................................................. 216
4.12.4 层次查询相关函数 ..................................................................................... 216
4.12.5 层次查询层内排序 ..................................................................................... 216
4.12.6 层次查询的限制 ......................................................................................... 217
4.13 并行查询 ................................................................................................................... 221
4.14 ROWNUM .................................................................................................................... 222
4.15 数组查询 .................................................................................................................. 223
4.16 查看执行计划与执行跟踪统计 .............................................................................. 223
4.16.1 EXPLAIN ..................................................................................................... 223
4.16.2 EXPLAIN FOR............................................................................................ 224
4.17 SAMPLE 子句 .......................................................................................................... 225
第 5 章 数据的插入、删除和修改 ......................................................................226
5.1 数据插入语句 ............................................................................................................ 226
5.2 数据修改语句 ............................................................................................................ 230
5.3 数据删除语句 ............................................................................................................ 233
5.4 MERGE INTO 语句 ................................................................................................... 234
5.5 伪列的使用 ................................................................................................................ 236
5.5.1 ROWID ............................................................................................................ 237
5.5.2 UID 和 USER.................................................................................................. 237
5.5.3 TRXID ............................................................................................................ 237
5.5.4 SESSID .......................................................................................................... 237
5.6 DM 自增列的使用 ...................................................................................................... 237
5.6.1 DM 自增列定义 .............................................................................................. 237
5.6.2 SET IDENTITY_INSERT 属性 ................................................................ 238
第 6 章 视图 ........................................................................................................241
6.1 视 图 的 作 用 .............................................................................................................. 241
6.2 视图的定义 ................................................................................................................ 242
6.3 视图的删除 ................................................................................................................ 245
6.4 视图的查询 ................................................................................................................ 245
6.5 视图的编译 ................................................................................................................ 246
6.6 视图数据的更新 ........................................................................................................ 247
第 7 章 物化视图 ................................................................................................249
7.1 物 化 视 图 的 定 义 .................................................................................................... 249
7.2 物 化 视 图 的 修 改 .................................................................................................... 252
IV
目录
7.3 物 化 视 图 的 删 除 .................................................................................................... 253
7.4 物 化 视 图 的 更 新 .................................................................................................... 254
7.5 物 化 视 图 允 许的 操 作 ........................................................................................... 254
7.6 物 化 视 图 日 志的 定 义 ........................................................................................... 254
7.7 物 化 视 图 日 志的 删 除 ........................................................................................... 255
7.8 物 化 视 图 的 限 制 .................................................................................................... 256
7.8.1 物化视图的一般限制 .................................................................................... 256
7.8.2 物化视图的分类 ............................................................................................ 256
7.8.3 快速刷新通用约束 ........................................................................................ 256
7.8.4 物化视图信息查看 ........................................................................................ 257
第 8 章 嵌入式 SQL .............................................................................................258
8.1 SQL 前缀和终结符 .................................................................................................... 258
8.2 宿主变量 .................................................................................................................... 259
8.2.1 输入和输出变量 ............................................................................................ 259
8.2.2 指示符变量 .................................................................................................... 260
8.3 服务器登录与退出 .................................................................................................... 260
8.3.1 登录服务器 .................................................................................................... 260
8.3.2 退出服务器 .................................................................................................... 261
8.4 游标的定义与操纵 .................................................................................................... 261
8.4.1 定义游标语句 ................................................................................................ 262
8.4.2 打开游标语句 ................................................................................................ 263
8.4.3 拨动游标语句 ................................................................................................ 264
8.4.4 关闭游标语句 ................................................................................................ 265
8.4.5 关于可更新游标 ............................................................................................ 265
8.4.6 游标定位删除语句 ........................................................................................ 266
8.4.7 游标定位修改语句 ........................................................................................ 267
8.5 单元组查询语句 ........................................................................................................ 268
8.6 动态 SQL ..................................................................................................................... 269
8.6.1 EXECUTE IMMEDIATE 立即执行语句 ...................................................... 269
8.6.2 PREPARE 准备语句 ...................................................................................... 270
8.6.3 EXCUTE 执行语句 ........................................................................................ 271
8.7 异常处理 .................................................................................................................... 271
第 9 章 函数 ........................................................................................................273
9.1 数值函数 .................................................................................................................... 278
9.2 字符串函数 ................................................................................................................ 291
9.3 日期时间函数 ............................................................................................................ 312
9.4 空值判断函数 ............................................................................................................ 326
9.5 类型转换函数 ............................................................................................................ 327
9.6 杂类函数 .................................................................................................................... 329
第 10 章 一致性和并发性 ...................................................................................332
10.1 DM 事务相关语句 .................................................................................................... 332
V
目录
10.1.1 事务的开始 ................................................................................................. 332
10.1.2 事务的结束 ................................................................................................. 332
10.1.3 保存点相关语句 ......................................................................................... 333
10.1.4 设置事务隔离级及读写特性 ...................................................................... 334
10.2 DM 手动上锁语句 .................................................................................................... 335
第 11 章 存储模块 ..............................................................................................338
11.1 PL/SQL 数据类型和操作符 .................................................................................. 338
11.1.1 PL/SQL 数据类型 ...................................................................................... 338
11.1.2 PL/SQL 操作符 .......................................................................................... 350
11.2 存储模块的定义 ...................................................................................................... 351
11.3 存储模块的删除 ...................................................................................................... 359
11.4 存储模块的重新编译 .............................................................................................. 360
11.5 存储模块的控制语句 .............................................................................................. 361
11.5.1 语句块 ......................................................................................................... 361
11.5.2 赋值语句 ..................................................................................................... 363
11.5.3 条件语句 ..................................................................................................... 364
11.5.4 循环语句 ..................................................................................................... 365
11.5.5 EXIT 语句 .................................................................................................. 367
11.5.6 调用语句 ..................................................................................................... 368
11.5.7 RETURN 语句 .............................................................................................. 370
11.5.8 NULL 语句 .................................................................................................. 370
11.5.9 GOTO 语句 .................................................................................................. 371
11.5.10 RAISE 语句 .............................................................................................. 371
11.5.11 打印语句 ................................................................................................... 372
11.5.12 CASE 语句 ................................................................................................ 372
11.5.13 CONTINUE 语句 ...................................................................................... 373
11.5.14 PIPE ROW 语句 ...................................................................................... 373
11.6 存储模块的调用 ...................................................................................................... 373
11.7 存储模块的异常处理 .............................................................................................. 374
11.7.1 异常变量的说明 ......................................................................................... 374
11.7.2 异常的抛出 ................................................................................................. 375
11.7.3 异常处理器 ................................................................................................. 376
11.7.4 内置函数 SQLCODE 和 SQLERRM .............................................................. 376
11.7.5 异常处理用法举例 ...................................................................................... 377
11.8 存储模块的 SQL 语句 ............................................................................................. 378
11.8.1 游标 ............................................................................................................. 378
11.8.2 引用游标 ..................................................................................................... 382
11.8.3 动态 SQL ...................................................................................................... 383
11.8.4 动态 SQL 的参数绑定 ................................................................................ 384
11.8.5 返回查询结果集 ......................................................................................... 385
11.8.6 自治事务 ..................................................................................................... 385
11.9 客户端存储模块 ...................................................................................................... 386
11.10 C 语法的 PL/SQL.................................................................................................. 387
VI
目录
11.10.1 概述 ........................................................................................................... 387
11.10.2 举例说明 ................................................................................................... 387
11.11 外部函数 ................................................................................................................ 389
11.11.1 概述 ........................................................................................................... 389
11.11.1 C 外部函数 ............................................................................................... 389
11.11.2 JAVA 外部函数 ........................................................................................ 393
第 12 章 包 .........................................................................................................395
12.1 创建包 ...................................................................................................................... 395
12.1.1 创建包规范 ................................................................................................. 395
12.1.2 创建包主体 ................................................................................................. 396
12.2 删除包 ...................................................................................................................... 398
12.2.1 删除包规范 ................................................................................................. 398
12.2.2 删除包主体 ................................................................................................. 398
12.3 应用实例 .................................................................................................................. 399
第 13 章 类类型 ..................................................................................................402
13.1 声明类 ...................................................................................................................... 402
13.2 实现类 ...................................................................................................................... 404
13.3 删除类 ...................................................................................................................... 406
13.3.1 删除类头 ..................................................................................................... 406
13.3.2 删除类体 ..................................................................................................... 407
13.4 类的使用 .................................................................................................................. 407
13.4.1 具体使用规则 ............................................................................................. 407
13.4.2 应用实例 ..................................................................................................... 408
第 14 章自定义类型 ............................................................................................410
14.1 创建类型 .................................................................................................................. 410
14.2 创建类型体 ............................................................................................................... 412
14.3 删除类型 ................................................................................................................... 412
14.3.1 删除类型 ...................................................................................................... 413
14.3.2 删除类型体 .................................................................................................. 413
14.4 自定义类型的使用 ................................................................................................... 413
14.4.1 使用规则 ..................................................................................................... 413
14.4.2 应用实例 ..................................................................................................... 413
第 15 章 触发器 ..................................................................................................415
15.1 触发器的定义 .......................................................................................................... 415
15.1.1 触发器类型 ................................................................................................. 427
15.1.2 触发器激发顺序 ......................................................................................... 430
15.1.3 新、旧行值的引用 ..................................................................................... 431
15.1.4 触发器谓词 ................................................................................................. 433
15.1.5 设计触发器的原则 ..................................................................................... 434
15.2 触发器的删除 .......................................................................................................... 434
VII
目录
15.3 禁止和允许触发器 .................................................................................................. 435
15.4 触发器的重编 .......................................................................................................... 435
15.5 触发器应用举例 ...................................................................................................... 436
15.5.1 使用触发器实现审计功能 .......................................................................... 436
15.5.2 使用触发器维护数据完整性 ...................................................................... 436
15.5.3 使用触发器保障数据安全性 ...................................................................... 438
15.5.4 使用触发器生成字段默认值 ...................................................................... 439
第 16 章 DM 安全管理 .........................................................................................440
16.1 创建角色语句 .......................................................................................................... 441
16.2 删除角色语句 .......................................................................................................... 441
16.3 授权语句(数据库权限) .......................................................................................... 442
16.4 授权语句(对象权限) .............................................................................................. 447
16.5 授权语句(角色权限) .............................................................................................. 450
16.6 回收权限语句(数据库权限) .................................................................................. 451
16.7 回收权限语句(对象权限) ...................................................................................... 453
16.8 回收权限语句(角色权限) ...................................................................................... 455
16.9 策略与标记管理 ...................................................................................................... 456
16.9.1 策略 ............................................................................................................. 456
16.9.2 等级 ............................................................................................................. 457
16.9.3 范围 ............................................................................................................. 459
16.9.4 组 ................................................................................................................. 460
16.9.5 标记 ............................................................................................................. 463
16.9.6 表标记 ......................................................................................................... 466
16.9.7 用户标记 ..................................................................................................... 467
16.9.8 会话标记 ..................................................................................................... 471
16.9.9 扩展客体标记 ............................................................................................. 473
16.10 审计设置语句 ........................................................................................................ 475
16.11 审计取消语句 ........................................................................................................ 479
16.12 创建审计实时侵害检测规则 ................................................................................ 480
16.13 删除审计实时侵害检测规则 ................................................................................ 480
16.14 加密引擎 ................................................................................................................ 480
第 17 章 DM 备份还原 .........................................................................................482
17.1 备份数据库 .............................................................................................................. 482
17.2 备份表空间 .............................................................................................................. 483
17.3 还原表空间 .............................................................................................................. 485
17.4 备份用户表 .............................................................................................................. 486
17.5 还原用户表 .............................................................................................................. 487
第 18 章 同义词 ..................................................................................................489
18.1 创建同义词 .............................................................................................................. 489
18.2 删除同义词 .............................................................................................................. 490
第 19 章 外部链接 ..............................................................................................491
VIII