2008-07-17
PL SQL学习笔记(未完)
关键字: plsql
sql属于第三代语言, 也就是说通过该语言能告诉操作者能做什么, 而无法告诉操作者如何做, 也就是屏蔽了系统内部的数据结构和算法
pl sql属于第四代语言, 它通过在sql的基础上引入变量, 控制语句, 过程和函数, 使得它除了sql的功能之外, 还更加灵活.
plsql的大致结构如下:
plsql也就是"三段式"的结构(声明, 执行代码快, 异常处理块), 其中只有执行代码块是必须的,其他两个部分是可选的.
pl sql中的变量可以自定义, 一些复杂的数据结构,比如记录类型, 表类型之类的
游标是用来处理使用select语句从数据库中检索到的多行记录的工具, 通过游标可以多一组记录集逐行进行处理, 对数据的统计和分析来说游标非常有用
过程和函数(统称为子程序)是经过编译的程序代码块,二者的区别是, 函数有返回值, 过程没有
为了方便管理, 可以将子程序, 变量以及变量类型组成包, 包包括两部分:说明和包体, 跟jdk有些类似, oralce也提供了一些内置的package, 一般都是以DBMS_打头用来方便在我们的plsql中调用.
一般的程序设计语言的基本单位是语句, 但是plsql的基本单位是语句块, 也就是declare ... begin ... end之间的部分.可以给语句块取一个名字, 也可以没有名字(匿名语句块), declare只是用来提供变量声明的, 如果没有变量声明则可以直接以begin打头.因为代码的执行部分是放在begin...end;(后面必须加分号)之间的.
用户自定义类型, 可以这样理解自定义类型, 自定义类型是基本类型的一个子集, 因此又称之为基本类型的子类型, 如果是基于数据库表中的某个字段的类型,可以这样写:SUBTYPE ID_num IS emp.empno%TYPE, 但是它只能集成列的尺寸约束, 不会集成象not null之类的约束.
在plsql中关于null有几点需要注意:
和包含null的值进行比较, 得到的结果总是null;
将逻辑操作符not应用一个null值上, 其结果也为null;
case...when条件选择语句中如果没有找到匹配的条件, 返回的结果是null, 而且null也不能做为when中的比较结果来进行匹配, 必须使用is null来测试结果;
在if...then...else条件语句中, 如果为false或者null会执行else中的语句;
零长度的字符串被看作null;
在使用||串接字符串时, null将被忽略;
plsql与其他的语言相比, 多了一个goto和null语句, 使用goto有很多限制, 不用多说, null语句表示什么也不做.
161 过程与函数
180 包
package是plsql代码块的一种组织形式, 它分包规范和包体, 只有子程序和游标需要在包体部分定义, 要想包体中定义的子程序和游标在包之外也能使用, 必须在包规范中进行声明
218 游标
游标可以用来增强sql语句的功能, 有时候sql无法搞定的时候, 我们就可以借助游标来对从数据库中取出的表进行处理
对于显式游标的处理可以概括为四个步骤:声明游标,打开游标, 提取游标和关闭游标
245 触发器
...
pl sql属于第四代语言, 它通过在sql的基础上引入变量, 控制语句, 过程和函数, 使得它除了sql的功能之外, 还更加灵活.
plsql的大致结构如下:
引用
DECLARE
变量声明
BEGIN
执行代码块
EXCEPTION
异常执行代码块
END
变量声明
BEGIN
执行代码块
EXCEPTION
异常执行代码块
END
plsql也就是"三段式"的结构(声明, 执行代码快, 异常处理块), 其中只有执行代码块是必须的,其他两个部分是可选的.
pl sql中的变量可以自定义, 一些复杂的数据结构,比如记录类型, 表类型之类的
游标是用来处理使用select语句从数据库中检索到的多行记录的工具, 通过游标可以多一组记录集逐行进行处理, 对数据的统计和分析来说游标非常有用
过程和函数(统称为子程序)是经过编译的程序代码块,二者的区别是, 函数有返回值, 过程没有
为了方便管理, 可以将子程序, 变量以及变量类型组成包, 包包括两部分:说明和包体, 跟jdk有些类似, oralce也提供了一些内置的package, 一般都是以DBMS_打头用来方便在我们的plsql中调用.
一般的程序设计语言的基本单位是语句, 但是plsql的基本单位是语句块, 也就是declare ... begin ... end之间的部分.可以给语句块取一个名字, 也可以没有名字(匿名语句块), declare只是用来提供变量声明的, 如果没有变量声明则可以直接以begin打头.因为代码的执行部分是放在begin...end;(后面必须加分号)之间的.
用户自定义类型, 可以这样理解自定义类型, 自定义类型是基本类型的一个子集, 因此又称之为基本类型的子类型, 如果是基于数据库表中的某个字段的类型,可以这样写:SUBTYPE ID_num IS emp.empno%TYPE, 但是它只能集成列的尺寸约束, 不会集成象not null之类的约束.
在plsql中关于null有几点需要注意:
和包含null的值进行比较, 得到的结果总是null;
将逻辑操作符not应用一个null值上, 其结果也为null;
case...when条件选择语句中如果没有找到匹配的条件, 返回的结果是null, 而且null也不能做为when中的比较结果来进行匹配, 必须使用is null来测试结果;
在if...then...else条件语句中, 如果为false或者null会执行else中的语句;
零长度的字符串被看作null;
在使用||串接字符串时, null将被忽略;
plsql与其他的语言相比, 多了一个goto和null语句, 使用goto有很多限制, 不用多说, null语句表示什么也不做.
161 过程与函数
180 包
package是plsql代码块的一种组织形式, 它分包规范和包体, 只有子程序和游标需要在包体部分定义, 要想包体中定义的子程序和游标在包之外也能使用, 必须在包规范中进行声明
218 游标
游标可以用来增强sql语句的功能, 有时候sql无法搞定的时候, 我们就可以借助游标来对从数据库中取出的表进行处理
对于显式游标的处理可以概括为四个步骤:声明游标,打开游标, 提取游标和关闭游标
245 触发器
...
发表评论
- 浏览: 264762 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
我的相册
t61 thinkpad
共 143 张
共 143 张
最近加入圈子
链接
最新评论
-
使用Dorado框架开发必备参 ...
哈哈,顶,收藏了啊
-- by liufeikl2008 -
使用Dorado框架开发必备参 ...
谢谢了,收藏啦!!期望更新中
-- by liufeikl2008 -
在云南做项目的日子――20 ...
波xx,咪xx全家..
-- by Diablofrog -
在云南做项目的日子――20 ...
太漂亮了..无法用言语形容了.....
-- by xiaozmn -
jBPM中Timer的使用
引用楼主使用没有发现什么问题吗?为什么我在用的时候,线程启动成功后,倒是执行了, ...
-- by macrochen






评论排行榜