第1章 DM SQL概述 1
1.1 SQL的发展 1
1.2 DM SQL的特点 2
1.3 DM SQL的主要功能 2
1.4 DM SQL数据类型 3
1.4.1 数值型数据类型 3
1.4.2 字符型数据类型 3
1.4.3 日期型数据类型 4
1.4.4 日期时间间隔数据类型 5
1.4.5 二进制和多媒体数据类型 9
1.5 DM SQL表达式 9
1.5.1 数值表达式 9
1.5.2 字符串表达式 10
1.5.3 时间值表达式 10
1.5.4 时间间隔值表达式 12
1.5.5 运算符的优先级 13
1.6 SQL语法描述说明 13
1.7 示例数据库说明 14
第2章 DM SQL函数 17
2.1 数值函数 17
2.2 字符串函数 29
2.3 日期时间函数 50
2.4 空值判断函数 66
2.5 类型转换函数 68
2.6 杂类函数 71
第3章 DM SQL数据定义 73
3.1 数据库修改语句 73
3.2 表空间管理语句 75
3.2.1 创建表空间 75
3.2.2 修改表空间 77
3.2.3 删除表空间 78
3.2.4 创建大表空间 79
3.2.5 删除大表空间 80
3.3 用户管理语句 80
3.3.1 创建用户 80
3.3.2 修改用户 84
3.3.3 删除用户 85
3.4 模式管理语句 86
3.4.1 创建模式 86
3.4.2 设置当前模式 87
3.4.3 删除模式 88
3.5 表管理语句 88
3.5.1 管理数据库表 89
3.5.2 管理外部表 101
3.6 视图管理语句 103
3.6.1 创建视图 103
3.6.2 删除视图 106
3.6.3 创建物化视图 107
3.6.4 修改物化视图 111
3.6.5 删除物化视图 111
3.7 索引管理语句 111
3.7.1 创建常用索引 112
3.7.2 删除常用索引 114
3.7.3 创建位图连接索引 114
3.7.4 删除位图连接索引 115
3.7.5 创建全文索引 116
3.7.6 修改全文索引 117
3.7.7 删除全文索引 118
3.8 序列管理语句 119
3.8.1 创建序列 120
3.8.2 删除序列 121
3.9 同义词管理语句 122
3.9.1 创建同义词 122
3.9.2 删除同义词 123
第4章 DM SQL数据查询 124
4.1 单表查询 124
4.1.1 简单查询 125
4.1.2 带条件查询 125
4.1.3 集函数 127
4.1.4 分析函数 129
4.1.5 CASE表达式 141
4.2 连接查询 143
4.2.1 交叉连接 143
4.2.2 自然连接(NATURAL JOIN) 144
4.2.3 JOIN…USING 145
4.2.4 JOIN…ON 145
4.2.5 自连接 145
4.2.6 内连接(INNER JOIN) 146
4.2.7 外连接(OUTER JOIN) 146
4.2.8 哈希连接(HASH JOIN) 147
4.3 子查询 148
4.3.1 标量子查询 148
4.3.2 表子查询 149
4.3.3 派生表子查询 150
4.3.4 定量比较 151
4.3.5 带EXISTS谓词的子查询 152
4.3.6 多列表子查询 153
4.4 公用表表达式 154
4.4.1 公用表表达式的作用 155
4.4.2 公用表表达式的使用 155
4.5 合并查询结果 156
4.6 查询子句 158
4.6.1 GROUP BY子句的使用 158
4.6.2 ROLLUP的使用 159
4.6.3 CUBE的使用 161
4.6.4 GROUPING的使用 162
4.6.5 GROUPING SETS的使用 163
4.6.6 HAVING子句的使用 164
4.6.7 ORDER BY子句 165
4.6.8 FOR UPDATE子句 166
4.6.9 TOP子句 167
4.6.10 LIMIT子句 168
4.7 全文检索 169
4.7.1 全文检索的使用 169
4.7.2 自定义全文检索词库 171
4.8 层次查询 175
4.8.1 层次查询子句 175
4.8.2 层次查询相关伪列 176
4.8.3 层次查询相关操作符 176
4.8.4 层次查询相关函数 176
4.8.5 层次查询层内排序 176
4.8.6 层次查询的限制 177
4.9 伪列的使用 182
4.9.1 ROWNUM 182
4.9.2 ROW 183
4.9.3 ROWID 183
4.9.4 UID及USER 184
4.9.5 TRXID 184
第5章 DM SQL数据操作和事务处理 185
5.1 数据插入语句 185
5.2 数据修改语句 186
5.3 MERGE INTO语句 187
5.4 数据删除语句 189
5.5 事务相关语句 190
5.5.1 事务简介 190
5.5.2 事务提交 192
5.5.3 事务回滚 193
5.5.4 事务锁定 195
5.5.5 多版本 198
5.5.6 事务隔离级 199
5.5.7 闪回 202
第6章 DM SQL数据控制 210
6.1 权限管理 210
6.1.1 权限分类 210
6.1.2 授予权限 212
6.1.3 回收权限 216
6.2 角色管理 218
6.2.1 创建角色 219
6.2.2 管理角色权限 220
6.2.3 分配与回收角色 220
6.2.4 启用与停用角色 222
6.2.5 删除角色 223
第7章 DM SQL程序设计基础 224
7.1 DM SQL程序的特点 224
7.2 DM SQL程序块结构 225
7.3 DM SQL程序代码编写规则 225
7.3.1 变量命名规范 225
7.3.2 大小写规则 226
7.3.3 注释 226
7.4 DM SQL程序变量声明、赋值及操作符 227
7.4.1 变量声明及初始化 227
7.4.2 变量赋值 228
7.4.3 操作符 228
7.5 变量类型 229
7.5.1 标量数据类型 229
7.5.2 大对象数据类型 230
7.5.3 %TYPE类型 231
7.5.4 %ROWTYPE类型 231
7.5.5 记录类型 231
7.5.6 数组类型 232
7.5.7 集合类型 235
7.5.8 类类型 241
7.6 DM SQL程序控制结构 245
7.6.1 条件控制IF语句 245
7.6.2 循环语句 247
7.6.3 CASE语句 250
7.6.4 其他控制语句 251
7.7 异常处理 253
7.7.1 异常处理语法 254
7.7.2 用户自定义异常 255
7.7.3 异常处理函数 257
7.8 游标 258
7.8.1 游标控制 259
7.8.2 游标变量 263
7.8.3 游标更新数据、删除数据 264
第8章 DM SQL程序设计 266
8.1 存储过程 266
8.1.1 存储过程的定义和调用 267
8.1.2 存储过程应用实例 269
8.1.3 存储过程编译 270
8.1.4 存储过程删除 270
8.1.5 C语法的DM SQL程序 271
8.2 存储函数 272
8.2.1 存储函数的定义和调用 272
8.2.2 存储函数编译 274
8.2.3 存储函数删除 274
8.2.4 C外部函数 274
8.2.5 Java外部函数 278
8.3 触发器 280
8.3.1 触发器概述 280
8.3.2 触发器创建 281
8.3.3 触发器管理 287
8.4 包 288
8.4.1 创建包语法 288
8.4.2 删除包 289
8.4.3 包应用举例 290
第9章 DM嵌入式SQL程序设计 293
9.1 嵌入式SQL程序组成及编译过程 293
9.1.1 嵌入式SQL程序组成 293
9.1.2 嵌入式SQL程序编译过程 294
9.2 嵌入式SQL常用语法 295
9.2.1 SQL前缀和终结符 295
9.2.2 宿主变量 296
9.2.3 输入和输出变量 296
9.2.4 指示符变量 297
9.2.5 服务器登录与退出 297
9.2.6 单元组查询语句 298
9.3 动态SQL 299
9.3.1 EXECUTE IMMEDIATE立即执行语句 300
9.3.2 PREPARE准备语句 300
9.3.3 EXECUTE执行语句 301
9.4 嵌入式程序的异常处理 301
9.4.1 嵌入的异常声明语句 301
9.4.2 异常处理语句使用实例 302
附录A 关键字和保留字 304
附录B 达梦数据库技术支持 311