目录
前言 (1)
第1章达梦数据库开发概述 (2)
1.1预备知识 (2)
1.2达梦数据库的模式 (2)
1.3 基于达梦的应用开发 (4)
1.4 其他的开发环境 (7)
第2章数据查询与操作 (9)
2.1 浏览数据库对象 (9)
2.2 使用查询访问数据 (11)
2.3 增加、修改和删除数据 (29)
2.4 事务控制 (32)
第3章使用数据库对象 (37)
3.1 使用数据类型 (37)
3.2 创建和使用表 (38)
3.3 使用视图 (49)
3.4 使用序列 (52)
3.5 使用同义词 (54)
第4章使用存储过程 (56)
4.1 存储过程概述 (56)
4.2 创建与使用独立的过程和函数 (56)
4.3 创建和使用包 (63)
4.4使用变量和常量 (66)
4.5 程序控制流 (69)
4.6 使用复合数据结构 (73)
4.7 使用游标来访问数据集 (75)
4.8 使用集合和数组 (80)
4.9 错误与异常处理 (84)
第5章使用触发器 (88)
5.1 设计触发器 (88)
5.2 创建和使用触发器 (90)
第6章如何发布达梦数据库应用程序 (95)
6.1 发布概述 (95)
6.2 准备环境 (95)
6.3做好计划:处理数据库对象的依赖性 (96)
6.4导出数据库对象 (97)
6.5 数据导出 (100)
6.6 脚本执行 (104)
6.7 环境确认 (104)
6.8 安装脚本的归档 (105)
前言
本指南是为了对DM数据库感兴趣,希望使用DM进行应用开发却又不太了解DM数据库的应用开发人员而编写的。文中介绍了DM数据库的基本概念和客户端工具,如何使用SQL和PL/SQL来操纵DM数据库以及如何发布达梦数据库的应用程序。
本文的读者应该对关系数据库的基础理论有基本的了解,那么接下来就可以随着本文开始使用DM进
行应用开发的旅程了。在阅读完本文后,您将已经可以在DM上规划自己的应用,建立相应合适的数据库对象并操纵对象数据,并最终发布自己的应用脚本。
当然,DM的功能远远不止本文所列,如果希望对DM应用开发有更全面和更深的理解,推荐您继续阅读。。。。。。
您可以在达梦数据库有限公司的官网上下载到所有相关用户文档/rvice/documentation.shtml。
第1章达梦数据库开发概述
1.1预备知识
本文是使用DM进行应用开发的入门级指南,针对的读者是刚开始使用DM数据库进行应用开发的技术人员,通过阅读本文能创建并维护用DM产品开发的数据库应用程序和组件。当然,作为数据库应用开发人员,读者应该已经具备应用开发的基本能力,包括如何实现应用逻辑所要求的数据模型,如何实现具有指定功能的访问和操纵应用数据的功能模块等。
用户只能通过客户端程序访问DM数据库,SQL语言是访问DM数据库的最基本接口。本文将会介绍DM产品包中包含的Manager和Disql两个客户端工具,它们让用户可以不需要编写任何应用程序即可
以运行SQL语句,应用开发人员可以使用这两个工具来测试应用
程序中的SQL语句。
DM还支持PL/SQL,作为第三代语言,PL/SQL具有比SQL语言更加强大的功能,且与SQL语言契合紧密,可以在PL/SQL程序中调用SQL语言。这样,PL/SQL就能够实现表、索引、视图、触发器等各种数据库对象的定义以及对象数据的操纵。通过使用DM的模式和权限机制,PL/SQL还能够安全地隐藏客户端程序的实现。因此,我们推荐用户在客户端程序
中尽可能使用PL/SQL子程序来进行数据库访问。
本文介绍的内容主要包含但不仅仅止于如下:
⏹使用达梦数据库进行应用开发涉及的基本概念和客户端工具
⏹使用数据库定义语言DDL建立DM数据库对象,使用数据库操纵语言DML对数据
库对象数据进行增、删、改、查
⏹使用DDL、DML、查询、事务控制语句编写PL/SQL子程序以及存储过程
⏹通过实例展示如何发布一个达梦数据库应用程序
1.2达梦数据库的模式
1.2.1模式对象
模式是DM数据库的逻辑单位。一个模式可包含许多数据库对象,同时每一个模式对应一个用户。通常每个用户都有一个同名的模式对应,即用户是该模式的拥有者。当使用用户名和密码连接到数据库上时,即可以访问同名模式的所有对象。
通常模式包含表、视图、索引、触发器和序列等对象。
⏹表,是数据库存储数据的基本单位。用户能向表中插入、更新和删除数据,且能查
询自己感兴趣的数据。每个表都包含若干行记录,每个记录又包含若干列,每个列
可以为不同的数据类型,如INT、VARCHAR、DATE等。
⏹索引,索引是一个重要的模式对象,其对于提升数据访问效率有很大作用。索引通
常是基于表上的一个或多个列,索引的维护是自动的,无需用户操心。
⏹视图,出于业务逻辑和安全性的考虑,用户可能需要建立一些视图。视图是基于一
个或多个表的虚表。
⏹序列,如果在一个应用程序中,表的每行记录必须被唯一标记出来,这时我们可以
使用序列,生成一组连续的、唯一的整数用来标记表的每一行记录。
⏹同义词,相当于模式对象的别名。同义词使应用可以更安全、更便利地引用数据库
对象。
⏹存储过程,通常是PL/SQL的代码块。这些代码块存储在数据库中,可以被客户端
调用,完成的特殊的功能。
⏹触发器,可以触发一段程序代码的执行。当满足触发器设定的执行条件或时间时,
自动运行这段程序。触发器可以基于表,视图等。
1.2.2模式示例
安装DM时,如果选择安装示例库,系统会自动安装一个名为BOOKSHOP的示例库。该示例库中,默认数据库名称为DAMENG,默认实例名为DMSERVER。
示例库BOOKSHOP模拟武汉代理图书的某销售公司,该公司欲建立在线购物平台来拓展其代理产品的销售渠道,该在线购物平台支持网上产品信息浏览、订购等服务(仅限同城内销售及送货)。该实例库是很经典的应用。
示例库中已创建了RESOURCES、PERSON、PRODUCTION、PURCHASING、SALES、OTHER 这6个模式和相关的表,并在表中插入了一些初始数据。以下是几个在示例库中建立一些模式对象的例子。
例1-1假设具有DBA权限的用户在PURCHASING表中,以VENDORID为索引列建立索引IND1,以ACCOUNTNO,NAME为索引列建立唯一索引IND2。
CREATE INDEX IND1 ON PURCHASING.VENDOR (VENDORID);
CREATE UNIQUE INDEX IND2 ON PURCHASING.VENDOR (ACCOUNTNO, NAME);
例1-2 对VENDOR表创建一个视图,名为VENDOR_EXCELLENT,保存信誉等级为1的供应商,列名有:VENDORID,ACCOUNTNO,NAME,ACTIVEFLAG。
CREATE VIEW PURCHASING.VENDOR_EXCELLENT AS
SELECT VENDORID, ACCOUNTNO, NAME, ACTIVEFLAG, CREDIT
FROM PURCHASING.VENDOR
WHERE CREDIT = 1;
例1-3创建一个简单的存储过程,统计并打印RESOURCES.EMPLOYEE表中雇员的人数。
CREATE OR REPLACE PROCEDURE RESOURCES.PROC_1(A IN OUT VARCHAR) AS
TOTAL_NUM INT;
BEGIN
SELECT COUNT(*) INTO TOTAL_NUM FROM RESOURCES.EMPLOYEE;
DBMS_OUTPUT.PUT_LINE(TOTAL_NUM);