猜你喜欢
金仓数据库KingbaseES PL/SQL 编程

金仓数据库KingbaseES PL/SQL 编程

书籍作者:张德珍 ISBN:9787302639305
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:6390
创建日期:2024-04-29 发布日期:2024-04-29
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书基于金仓数据库管理系统KingbaseES V9版本,采用“理论+实践”的形式编写。在全面介绍KingbaseES PL/SQL基本知识的基础上,详细讲解了PL/SQL开发的所有功能模块、方法和技巧,包括PL/SQL中的静态SQL语句、事务处理、动态SQL语句、异常处理、输入与输出、子程序、用户自定义对象、用户自定义聚集函数、程序包、触发器、代码保护、调试、调度与执行等主要内容。

本书以一个简化的在线购物平台数据库为例,将理论知识翔实地融入实践当中,以大量应用实例验证、解读,让读者体验完整的项目实操过程。此外,考虑与Oracle及PostgreSQL数据库的兼容性,协助数据库开发人员用好国产数据库,提高国产数据库在国民经济各领域的应用范围,本书还作了差异性比较和转换操作。

本书适用于KingbaseES数据库开发人员、KingbaseES数据库管理员等相关数据库从业人员,也可作为大中专院校计算机科学与技术、软件工程等相关专业师生的参考用书,还可作为培训机构的培训教材。


前言

金仓数据库KingbaseES是北京人大金仓信息技术股份有限公司(简称“人大金仓”)研发的一款面向大规模并发交易处理的企业级关系数据库。它融合了人大金仓在数据库领域几十年产品研发与企业级应用的实践经验,可满足各行业用户多种场景的数据处理需求。KingbaseES遵循严格的ACID特性,结合多核架构的极致性能、行业最高的安全标准、完备的高可用方案,以及可覆盖迁移、开发及运维管理全生命周期的智能便捷工具,可为用户带来极致的使用体验。金仓数据库KingbaseES广泛服务于电子政务、能源、金融、电信、教育及交通等60余个重点行业和关键领域,累计装机部署超过100万套,入选国务院国资委发布的十项国有企业数字技术典型成果。

PL/SQL是KingbaseES数据库对标准SQL语言进行过程化扩展,专门用于各种环境下对KingbaseES数据库进行访问和开发的语言,具有高性能、可移植、可扩展、兼容性好、支持面向对象编程等优点。

本书从PL/SQL的基本语法入手,详细讲解了PL/SQL开发的所有功能模块、方法和技巧,并以一个简化的在线购物平台数据库为例,将各章节的理论知识翔实地融入实践当中,让读者体验完整的项目实操过程,也为KingbaseES开发者提供一个关于PL/SQL过程语言的全面、坚实的参考资源。本书既适用于KingbaseES数据库开发人员、KingbaseES数据库管理员等相关数据库从业人员,也可以作为大中专院校计算机科学与技术、软件工程等相关专业师生的参考用书和培训机构的培训教材。

全书共分16章,章节安排以KingbaseES PL/SQL的功能特点为主线展开,通过大量系统性应用实例加以验证,内容讲解由浅入深,层次清晰,通俗易懂。第1章介绍KingbaseES PL/SQL的优点、特征、运行机制和案例数据库;第2章介绍PL/SQL的程序结构以及涉及的3种主要控制语句;第3章介绍PL/SQL的复合数据类型,包括集合类型和记录类型;第4章介绍游标、游标变量、批量处理操作等PL/SQL中的静态SQL语句及其应用;第5章介绍事务处理、自治事务,二者之间的调用关系及使用;第6章介绍动态SQL语句,包括本地动态SQL和DBMS_SQL包两种技术,以及各自的编程方法;第7章介绍处理PL/SQL运行错误的方法,包括定义异常、引发异常和处理异常;第8章介绍PL/SQL中3种常用的输入与输出机制,包括在控制台输入和输出信息,读取数据到内存和写入数据到本地,以及通过网络获取数据;第9章介绍PL/SQL子程序,包括独立子程序、嵌套子程序以及表函数;第10章介绍PL/SQL中用户自定义对象的创建、使用,以及与Oracle的差异;第11章介绍PL/SQL中用户自定义聚集函数的创建、使用,以及与Oracle的差异;第12章介绍程序包的创建和使用;第13章介绍PL/SQL中DML触发器、事件触发器的创建和使用,以及触发器的管理;第14章介绍PL/SQL中通过Wrapper实用程序和DBMS_DDL子程序实现代码的加密保护;第15章介绍PL/SQL的执行跟踪和调试器功能;第16章介绍通过DBMS_JOB和DBMS_SCHEDULER包的自动作业功能函数实现任务调度与执行功能。

本书具有以下特点。

(1) 由浅入深地成体系讲解KingbaseES PL/SQL的所有功能,弥补了国产数据库在PL/SQL过程语言方面的内容缺失;该体系下的丰富内容和组织形式使数据库开发人员更易于理解、掌握相关理论和方法。

(2) 注重理论和实践的结合,以一个简化的在线购物平台数据库案例贯穿全书,讲解理论时针对每一个语法或知识点,结合案例设计了大量应用实例验证、解读,使读者能读懂,会使用,提高效率。

(3) 考虑从国外数据库到国产数据库的迁移需求,如从Oracle及PostgreSQL数据库迁移到KingbaseES,协助数据库开发人员用好国产数据库,提高国产数据库在国民经济各领域的应用范围,书中对相关数据库作了差异性比较,并提供了丰富的转换操作应用实例,使KingbaseES能更好地兼容其他数据库。

(4) 提供配套的数据库案例和示例源代码。

本书由张德珍、张俊、曹志英、杜胜、冯玉共同编写。全书大纲由杜胜、冯玉拟制,由张德珍执笔,张俊、曹志英参与本书的编写讨论和用户案例库设计,最后由张德珍统稿,杜胜和冯玉参与本书撰写过程的全部讨论,并对本书进行审定,提出大量宝贵的意见和建议。参与本书编写工作的还有大连拓扑伟业科技有限公司的宋盈吉、王兆松、郑昊、朱莹琦,大连海事大学信息科学与技术学院的宋鹏飞、秦一、陶李婷、相龙、刘畅等同学,分别收集整理了各章节相关素材,并设计和验证了相关案例。在编写过程中,作者参阅了人大金仓、甲骨文公司、PostgreSQL开源数据库、大连拓扑伟业科技有限公司等相关的数据库文档、联机帮助和教学培训成果,也吸取了国内外相关参考书的精髓,对这些作者的贡献表示由衷的感谢。在本书的出版过程中,得到了中国人民大学王珊教授的支持和帮助,还得到了清华大学出版社张玥编辑的大力支持,在此表示诚挚的感谢。

由于作者水平有限,书中难免有不妥和疏漏之处,恳请各位专家、同仁和读者不吝赐教,并与笔者讨论。


作者2023年5月于大连


目录

第1章KingbaseES PL/SQL概述1

1.1PL/SQL概述1

1.1.1PL/SQL的优点1

1.1.2PL/SQL的特性2

1.1.3PL/SQL的结构4

1.2创建与运行PL/SQL代码5

1.2.1KSQL6

1.2.2KStudio9

1.3PL/SQL的运行机制10

1.3.1PL/SQL引擎10

1.3.2PL/SQL单元与编译参数12

1.4案例数据库介绍14

1.4.1SeaMart的ER图及其表结构14

1.4.2创建表19

1.5使用金仓在线帮助文档23


第2章PL/SQL程序结构24

2.1PL/SQL块结构24

2.2PL/SQL声明段27

2.2.1数据类型27

2.2.2变量和常量的声明28

2.3基本执行语句29

2.4条件选择语句32

2.4.1IF32

2.4.2CASE36

2.5循环语句38

2.5.1基本循环语句39

2.5.2FOR LOOP语句41

2.5.3WHILE LOOP语句43

2.5.4FOREACH语句44

2.6获取执行状态信息45

2.6.1获取结果状态和执行位置信息45

2.6.2错误和消息47


第3章PL/SQL的复合数据类型49

3.1集合类型49

3.1.1关联数组50

3.1.2可变数组52

3.1.3嵌套表53

3.1.4集合的构造函数56

3.1.5集合变量赋值57

3.1.6多维集合59

3.1.7集合的比较60

3.1.8集合方法61

3.2记录类型65

3.2.1记录类型概述65

3.2.2声明记录类型65

3.2.3使用记录类型66

目录

第4章PL/SQL中的静态SQL语句69

4.1静态SQL语句概述69

4.1.1静态SQL语句类型69

4.1.2PL/SQL中的SELECT语句70

4.1.3PL/SQL中的DML语句73

4.2游标75

4.2.1游标概念75

4.2.2隐式游标76

4.2.3声明和定义显式游标78

4.2.4打开和关闭显式游标79

4.2.5使用显式游标获取数据79

4.2.6显式游标查询中的变量84

4.2.7当显式游标查询需要列别名时86

4.2.8接收参数的显式游标87

4.2.9显式游标属性90

4.3游标变量93

4.3.1创建游标变量94

4.3.2打开和关闭游标变量95

4.3.3使用游标变量获取数据95

4.3.4为游标变量赋值97

4.3.5游标变量查询中的变量98

4.3.6游标变量属性100

4.3.7游标变量作为子程序参数100

4.4批量处理102


第5章事务处理109

5.1事务处理概述109

5.2事务处理语句109

5.2.1COMMIT语句109

5.2.2ROLLBACK语句109

5.2.3SET TRANSACTION 语句110

5.3自治事务111

5.3.1声明自治事务113

5.3.2从SQL中调用自治函数115


第6章动态SQL语句116

6.1动态SQL语句概述116

6.2Native dynamic SQL118

6.2.1EXECUTE IMMEDIATE语句119

6.2.2OPEN FOR、FETCH和CLOSE语句124

6.2.3重复的占位符名称125

6.3DBMS_SQL包127

6.3.1DBMS_SQL包中的常用方法127

6.3.2DBMS_SQL包操作流程128

6.3.3其他常用DBMS_SQL方法131

6.4SQL注入136

6.4.1SQL注入技术136

6.4.2防范SQL注入139


第7章异常处理142

7.1异常处理的概念和术语142

7.1.1异常种类143

7.1.2异常处理程序的优点143

7.2定义异常145

7.2.1系统预定义异常145

7.2.2用户自定义异常147

7.2.3重新声明预定义的异常148

7.3引发异常149

7.3.1显式触发异常149

7.3.2异常传播153

7.3.3未处理的异常160

7.4处理异常161

7.4.1处理异常的措施161

7.4.2检索异常信息162

7.4.3异常捕获165

7.4.4获取异常状态信息168

7.4.5检查断言169


第8章PL/SQL中的输入与输出171

8.1显示信息(DBMS_OUTPUT)171

8.1.1启用DBMS_OUTPUT171

8.1.2向缓冲区输入信息172

8.1.3从缓冲区读取信息173

8.2文件读写174

8.2.1启动UTL_FILE174

8.2.2UTL_FILE方法174

8.3使用基于Web的数据(http)177

8.3.1UTL_HTTP数据类型177

8.3.2UTL_HTTP方法178

8.3.3http数据类型181

8.3.4http方法183


第9章PL/SQL子程序187

9.1子程序概述187

9.1.1子程序的分类187

9.1.2子程序的优点187

9.2独立子程序188

9.2.1子程序结构188

9.2.2创建函数189

9.2.3创建存储过程190

9.2.4支持的参数192

9.2.5调用与使用195

9.2.6支持的返回值类型197

9.3嵌套子程序200

9.3.1概述200

9.3.2声明和定义201

9.3.3支持的参数203

9.3.4调用与变量204

9.4子程序重载205

9.5表函数206

9.5.1结果返回行集合206

9.5.2结果返回集合数据类型209


第10章用户自定义对象211

10.1用户自定义对象概述211

10.2创建用户自定义对象211

10.2.1对象类型211

10.2.2对象实例215

10.3在PL/SQL中使用自定义对象216

10.3.1定义对象216

10.3.2初始化对象216

10.3.3调用构造函数217

10.3.4调用MEMBER方法和STATIC方法217

10.3.5对象表的DML操作218

10.4与Oracle数据库中对象类型的差异219


第11章用户自定义聚集函数222

11.1用户自定义聚集函数概述222

11.1.1聚集函数222

11.1.2创建用户自定义聚集函数223

11.2用户自定义聚集函数的运用224

11.2.1场景数据224

11.2.2创建用户自定义聚集函数225

11.2.3用户自定义聚集函数的使用226

11.2.4查看用户自定义聚集函数信息227

11.3KingbaseES与Oracle中创建聚集函数的差异228


第12章程序包232

12.1程序包概述232

12.1.1包的概念232

12.1.2包的优点232

12.1.3系统内置包233

12.2创建程序包233

12.2.1包的组成233

12.2.2包的创建235

12.3程序包的使用239

12.3.1包元素的调用规则239

12.3.2包数据240

12.3.3包游标240

12.3.4查看程序包信息242


第13章触发器247

13.1触发器简介247

13.1.1触发器的概念247

13.1.2触发器的作用248

13.1.3触发器的种类248

13.2DML触发器248

13.2.1DML触发器的用途248

13.2.2创建DML触发器248

13.2.3触发器体250

13.2.4INSTEAD OF触发器253

13.2.5触发器触发的顺序254

13.3事件触发器254

13.3.1事件触发器概述254

13.3.2创建事件触发器255

13.4触发器设计注意事项255

13.5触发器管理256

13.5.1禁用与启用触发器256

13.5.2修改、重编译与删除触发器257

13.5.3触发器信息查询257


第14章PL/SQL的代码加密259

14.1PL/SQL代码加密概述259

14.2Wrapper260

14.2.1使用PL/SQL Wrapper实用程序260

14.2.2PL/SQL Wrapper 实用程序的输入与输出文件260

14.2.3PL/SQL Wrapper加密的优点和局限性261

14.2.4示例261

14.3DBMS_DDL包的使用264

14.3.1使用DBMS_DDL子程序264

14.3.2DBMS_DDL加密的局限性264

14.3.3示例264


第15章PL/SQL的调试266

15.1PL/SQL的执行跟踪266

15.1.1DBMS_UTILITY267

15.1.2性能监控271

15.2PL/SQL调试器277

15.2.1函数/存储过程调试277

15.2.2触发器调试283

15.2.3程序包调试285


第16章PL/SQL任务的调度与执行290

16.1使用DBMS_JOB包管理任务290

16.1.1任务的创建291

16.1.2任务的执行296

16.1.3任务的删除297

16.2使用DBMS_SCHEDULER包管理任务299

16.2.1任务的创建299

16.2.2任务的执行304

16.2.3任务的删除304

16.3使用KStudio管理任务307

16.3.1任务的创建307

16.3.2任务的执行308

16.3.3任务的删除309


参考文献312