没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
程序設計
是一种高级数据库程序设计语言,该语言专门用于在各种环境下对 数据
库进行访问。由于该语言集成于数据库服务器中,所以 代码可以对数据进行快速
高效的处理。除此之外,可以在 数据库的某些客户端工具中,使用 语言
也是该语言的一个特点。本章的主要内容是讨论引入 语言的必要性和该语言的主
要特点,以及了解 语言的重要性和数据库版本问题。还要介绍一些贯穿全书的更
详细的高级概念,并在本章的最后就我们在本书案例中使用的数据库表的若干约定做一说
明。
本章主要重点:
概述
块结构
流程
运算符和表达式
游标
异常处理
数据库存储过程和函数
包
触发器
与
什么是
是 的缩写。
的 是支持 !!"##!$和 %
!"#!&!$标准的产品。 是对 语言存储过程
语言的扩展。从 ' 以后, 的 RDBMS 附带了 。它现在已经成为
一种过程处理语言,简称 。目前的 包括两部分,一部分是数据库引擎部分;
另一部分是可嵌入到许多产品(如 语言,() 语言等)工具中的独立引擎。可以将这
两部分称为:数据库 PL/SQL 和工具 PL/SQL。两者的编程非常相似。都具有编程结构、
语法和逻辑机制。工具 另外还增加了用于支持工具(如 * #)的句法,
如:在窗体上设置按钮等。本章主要介绍数据库 内容。
的好处
有利于客户服务器环境应用的运行
对于客户服务器环境来说,真正的瓶颈是网络上。无论网络多快,只要客户端与服务器进
行大量的数据交换。应用运行的效率自然就会受到影响。如果使用 进行编程,将
这种具有大量数据处理的应用放在服务器端来执行。自然就省去了数据在网上的传输时间。
适合于客户环境
由于分为数据库 部分和工具 。对于客户端来说, 可以嵌
套到相应的工具中,客户端程序可以执行本地包含 部分,也可以向服务发 命
令或激活服务器端的 程序运行。
可用的 语句
是 系统的核心语言,现在 的许多部件都是由 写成。在
中可以使用的 语句有:
+,,-+,-+,+
+,..+,/0,)+。
提示:在 中只能用 语句中的 -.部分,不能用 --部分,如果要
在 中使用 --如 +1"等$的话,只能以动态的方式来使用。
的 组件在对 程序进行解释时,同时对在其所使用的表名、列
名及数据类型进行检查。
可以在 2,中使用。
可以在高级语言中使用。
可以 在 的 开发工具中使用。
其它开发工具也可以调用 编写的过程和函数,如 3/!"等都可以调用
服务器端的 过程。
4运行 程序
程序的运行是通过 中的一个引擎来进行的。这个引擎可能在
的服务器端,也可能在 应用开发的客户端。引擎执行 中的过程性语句,
然后将 语句发送给数据库服务器来执行。再将结果返回给执行端。
块
程序由三个块组成,即声明部分、执行部分、异常处理部分。
块的结构如下:
-
2声明部分5在此声明 用到的变量6类型及游标,以及局部的存储过程和函数 2
/7
2执行部分5过程及 语句 6即程序的主要部分 2
8+
2执行异常部分5错误处理 2
-9
其中 执行部分是必须的。
块可以分为三类:
无名块:动态构造,只能执行一次。
子程序:存储在数据库中的存储过程、函数及包等。当在数据库上建立好后可以在其它
程序中调用它们。
4触发器:当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
结构
块中可以包含子块;
子块可以位于 中的任何部分;
子块也即 中的一条命令;
4标识符
程序设计中的标识符定义与 的标识符定义的要求相同。要求和限制有:
标识符名不能超过 4: 字符;
第一个字符必须为字母;
不分大小写;
不能用’;<减号$9
不能是 保留字。
提示5一般不要把变量名声明与表中字段名完全一样6如果这样可能得到不正确的结果
例如:下面的例子将会删除所有的纪录,而不是 07的记录;
-
=>:$5?@07@9
/7
-+*. ABC ? 9
-9
变量命名在 中有特别的讲究,建议在系统的设计阶段就要求所有编程人员共同遵
守一定的要求,使得整个系统的文档在规范上达到要求。下面是建议的命名方法:
标识符 命名规则 例子
程序变量 )D )D
程序常量 D D AD
游标变量 D# AD#
异常标识 D DD
表类型 D1"DA ADDA
表 D1" A
记录类型 D AD
2"#替代变量 D D#"
绑定变量 7D 7DD#"
E变量类型
在前面的介绍中,有系统的数据类型,也可以自定义数据类型。下表是 类型和
中的变量类型的合法使用列表:
E变量类型
在 F! 中可以使用的变量类型有:
类型 子类 说 明 范 围 限制
C>
!
3!
>定长字符串
民族语言字符集 4G'G:
可选6确省?:::
)C)>6!
)C可变字符串
4G'G民族语言字符集 :
E:::E:::
/HD+7带符号整数6为整数计算优化性能
,./A6#$-
-1"A!#!
!
"
""!小数6,./的子类型
高精度实数
整数6,./的子类型
整数6,./的子类型
与 ,./ 等价
与 ,./ 等价
整数6比 !小
7变长字符串 :;IEGEF4'EG46G'G 字节
-+日期型 公元前 EG 年 月 日至公元后 EG 年 月 4 日
/布尔型 +,6*6,不使用
B-存放数据库行号
,B-通用行标识符,字符类型
例 插入一条记录并显示;
-
3D!,B-9
!J)CE:$9
/7
++A),%:6<)@6</(7@$
+,73!6 KK@5@KKD>A$KK@5@KK"
+3D!6!J9
-/.D,+,+,+D<B-5@KK3D!$9
-/.D,+,+,+D!J$9
-9
其中:+,7 子句用于检索 + 语句中所影响的数据行数,当 + 语句使
用 ),子句插入数据时,+,7字句还可将列表达式、B- 和 * 值返
回到输出变量中。在使用 +,7子句是应注意以下几点限制:
. 不能并行 -. 语句和远程对象一起使用;
. 不能检索 7类型信息;
4. 当通过视图向基表中插入数据时,只能与单基表视图一起使用。
例 修改一条记录并显示
-
3D!,B-9
!J)CE:$9
/7
,-+A+A?F:BC-.?<)@
+,73!6 KK@5@KKD>A$KK@5@KK"
+3D!6!J9
-/.D,+,+,+D<B-5@KK3D!$9
-/.D,+,+,+D!J$9
-9
其中:+,7 子句用于检索被修改行信息:当 ,-+ 语句修改单行数据时,
+,7子句可以检索被修改行的 B- 和 * 值,以及行中被修改列的列表达式,
并可将他们存储到 变量或复合变量中;当 ,-+ 语句修改多行数据时,
+,7子句可以将被修改行的 B- 和 * 值,以及列表达式值返回到复合变量
数组中。在 ,-+ 中使用 +,7子句的限制与 + 语句中对 +,7
子句的限制相同。
例 4删除一条记录并显示
-
3D!,B-9
!J)CE:$9
/7
-+ABC-.?<)@
+,73!6 KK@5@KKD>A$KK@5@KK"
+3D!6!J9
-/.D,+,+,+D<B-5@KK3D!$9
-/.D,+,+,+D!J$9
-9
剩余52页未读,继续阅读
楚江南
- 粉丝: 2
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0