系统介绍了DMSQL的功能、语法、应用及DMSQL程序设计方法,内容实用、操作性强,语言通俗、格式规范,可作为相关专业的教材,也可作为工程技术人员的参考书。
本书以达梦数据库管理系统DM7.1为蓝本,系统介绍了DM SQL的功能、语法、应用及DM SQL程序设计方法。全书包括9章,主要内容包括DM SQL函数、DM SQL数据定义、数据查询、数据操作和事务处理、数据控制等SQL语句的语法及应用,以及存储过程、存储函数、触发器、包、嵌入式SQL等数据库程序设计方法。附光盘1张,内含达梦数据库管理系统7.1教学版及例题源码。
本书内容实用、操作性强,语言通俗、格式规范,可作为相关专业的教材,也可作为工程技术人员的参考书。
戴剑伟,教授,主要研究方向为数据工程、信息资源管理,出版《军事信息管理》、《跨领域信息交换方法与技术》、《数据工程理论与技术》、《HLA仿真程序设计》等4部专著。
第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
前 言
发展具有自主知识产权的国产数据库管理系统,打破国外数据库产品的垄断,为我国信息化建设提供安全可控的基础软件,是维护国家信息安全的重要手段。
达梦数据库管理系统作为国内最早推出的具有自主知识产权的数据库管理系统之一,是唯一获得国家自主原创产品认证的数据库产品,现已在公安、电力、铁路、航空、审计、通信、金融、海关、国土资源、电子政务等多个领域得到广泛应用,为国家机关、各级政府和企业信息化建设发挥了积极作用。
为了推动国产数据库管理系统的教学和人才培养,促进国产数据库的广泛应用,我们在总结数据库管理系统长期教学和科研实践经验的基础上,在达梦数据库有限公司的大力支持下,以达梦数据库DM7.1为蓝本,编写了《达梦数据库应用基础》和《达梦数据库SQL指南》两本教材。
《达梦数据库SQL指南》系统介绍了DM SQL的功能、语法、应用和DM数据库程序设计,全书共9章。内容包括DM SQL概述,DM SQL函数,DM SQL数据定义,DM SQL数据查询,DM SQL数据操作和事务处理,DM SQL数据控制,DM SQL程序设计基础,DM SQL程序设计,DM嵌入式SQL程序设计。为了方便读者学习和体验操作,此书还附带了光盘。光盘内包含了达梦数据库管理系统7.1标准版和例题源码。
本书纲目由吴照林、戴剑伟拟制,最后统稿修改由吴照林、戴剑伟完成。具体分工为:第1章由吴照林、戴剑伟编写,第2章由文峰、戴剑伟编写,第3章由龚建华、冯勤群编写,第4章由曾昭文、张守帅编写,第5章由戴剑伟、周淳编写,第6章由朱明东、龚建华编写,第7章和第8章由戴剑伟、张胜编写,第9章由冯勤群、戴剑伟、张海粟编写。左青云、王强、刘培磊编写了书中例题,并对例题进行了测试验证。
在本书的编写过程中,参考了达梦数据库有限公司提供的技术资料,在此表示衷心的感谢。
由于作者水平有限,书中难免有些错误与不妥之处,敬请读者批评指正,欢迎读者通过达梦数据库技术支持联系方式(见附录B)。
作 者
2016年10月于武汉
实践为王,代码为证 坦白说,很多技术书籍在理论讲解上都很到位,但往往在实操环节就显得力不从心。然而,《达梦数据库SQL指南》在这方面做得相当出色。书中提供的每一个SQL示例,都附带了详细的代码片段,甚至连创建测试数据的脚本都一应俱全。我喜欢这种“拿来即用”的学习方式,无需花费大量时间去自己搭建环境或者猜测代码的含义。通过亲手敲击键盘,执行那些SQL语句,看着数据在眼前生成、修改、删除,这种成就感是阅读纯理论书籍无法比拟的。尤其是在学习索引和优化部分时,书中通过对比不同查询语句的执行效率,直观地展现了索引的威力。我甚至按照书中的方法,在自己的测试库里对一些慢查询进行了优化,效果立竿见影,这让我对达梦数据库的性能调优有了初步的认识。这种理论与实践紧密结合的学习模式,极大地提升了我的学习效率和解决问题的能力,让我觉得这本书不仅仅是一本“指南”,更像是一位经验丰富的导师,手把手地教我如何驾驭达梦数据库。
评分融会贯通,触类旁通 随着阅读的深入,我越来越发现《达梦数据库SQL指南》并非只是孤立地讲解SQL语法,而是将SQL语言置于达梦数据库的整体架构和应用场景中进行阐述。书中不仅涉及了数据的增删改查,还触及了视图、存储过程、触发器等高级特性。通过学习这些内容,我开始理解如何将零散的SQL语句组合成强大的数据处理逻辑,如何利用达梦数据库的特性来提升开发效率和系统性能。特别是在学习存储过程时,书中通过一个实际的业务场景,演示了如何将复杂的业务逻辑封装到存储过程中,从而提高代码的可维护性和复用性。这种“触类旁通”的学习体验,让我不再局限于简单的SQL查询,而是能够从更宏观的视角来思考如何利用数据库解决实际问题。它让我明白,掌握SQL不仅仅是学会写语句,更是理解数据库的设计理念和应用模式,从而能够更加灵活地运用达梦数据库来构建复杂的应用系统。
评分初窥门径,迷雾渐开 终于下定决心要深入学习达梦数据库,这本《达梦数据库SQL指南》着实给了我一个极佳的切入点。初拿到手,翻开第一页,便被其清晰的排版和由浅入深的逻辑所吸引。作者似乎深谙初学者的困惑,从最基础的SQL概念讲起,循序渐进地引导读者理解数据库的运作原理,以及如何在达梦环境中构建和管理数据。书中对各种SQL语句的解析,不仅仅是简单的语法罗列,更是结合了大量的实际应用场景,让我能快速地将理论知识转化为实践技能。例如,在讲解JOIN操作时,书中并没有止步于INNER JOIN、LEFT JOIN的定义,而是通过一个模拟的订单和客户管理场景,生动地展示了如何巧妙运用不同类型的JOIN来获取所需信息,这对于我这种需要处理复杂业务逻辑的人来说,简直是雪中送炭。而且,书中还穿插了一些达梦特有的函数和语法,这让我意识到,虽然SQL有标准,但在具体的数据库系统中,掌握其独特性至关重要。每一次阅读,都仿佛在拨开层层迷雾,让我对达梦数据库的理解更加透彻,也为我后续更深入的学习打下了坚实的基础。
评分细微之处,见真章 这本书最让我印象深刻的,是它在细节上的打磨。很多看似微不足道的SQL语法细节,在实际开发中却可能引发大问题,而《达梦数据库SQL指南》恰恰捕捉到了这些关键点,并进行了详尽的解释。比如,关于NULL值的处理,书中不仅阐述了IS NULL和IS NOT NULL的用法,还详细讲解了COALESCE函数在处理NULL值时的妙用,这在处理遗留数据或者不完整数据时尤为重要。再比如,事务管理的部分,作者并没有简单地介绍BEGIN TRANSACTION、COMMIT、ROLLBACK,而是深入分析了不同隔离级别带来的影响,以及在并发环境下可能出现的死锁问题,并给出了相应的预防和处理建议。这些内容对于任何一个需要保证数据一致性和可靠性的开发者来说,都至关重要。很多时候,一本好的技术书籍,其价值往往体现在这些“细微之处”,它能帮助你规避很多不必要的坑,让你的开发之路更加平坦。这本书无疑做到了这一点,让我受益匪浅。
评分从新手到熟手,坚实的一步 回顾整个阅读过程,我最大的感受是,《达梦数据库SQL指南》确实是一本能够将一个对达梦数据库只有模糊概念的“新手”,逐步培养成能够独立进行基本数据库操作和开发的“熟手”的优秀教材。书中内容的逻辑性强,由浅入深,不跳跃,不晦涩。即便是初次接触数据库开发的读者,也能按照书中的指引,一步一步地建立起扎实的知识体系。书中的语言风格平实易懂,避免了过多的专业术语堆砌,即使遇到不理解的地方,也能通过作者提供的示例和解释,很快找到问题的答案。对于我而言,这本书不仅仅是一本技术参考书,更是一次系统性的学习经历。它帮助我建立起了对达梦数据库SQL的信心,也为我未来在达梦平台上进行更复杂的开发奠定了坚实的基础。这是一次非常值得的投入,让我觉得在数据库学习的道路上,又迈出了坚实的一步。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有