Oracle扩展PL/SQL简介(一)
来源:互联网 发布:加入淘宝客要多少钱 编辑:程序博客网 时间:2024/05/21 22:53
好久没有写文章了,现发表我对PL/SQL的总结。
注:
文中代码都是在oracle10g 实验并运行成功
代码大多是在scott模式下执行,部分是在hr模式下
使用sqlplus工具
1. PL/SQL 概述
PL/SQL 是 Oracle 对 SQL 规范的扩展,是一种块结构语言,即构成一个 PL/SQL 程序的基本单位(过程、函数和无名块 ) 是逻辑块,可包含任何数目的嵌套块。这种程序结构支持逐步求精方法解决问题。一个块(或子块 ) 将逻辑上相关的说明和语句组合在一起,其形式为:
DECLARE
--- 说明
BEGIN
--- 语句序列
EXCEPTION
--- 例外处理程序
END ;
它有以下优点 :
● 支持SQL;
● 生产率高;
● 性能好;
● 可称植性;
● 与ORACLE集成.
2. PL/SQL 体系结构
PL/SQL是ORACLE对SQL扩展的一种技术,不是一种独立产品,可认为这种技术是 PL/SQL 块和子程序的一种机,它可接收任何有效的 PL/SQL 块或子程序。如图所示:
2.PL/SQL 基础:
PL/SQL 有一字符集、保留字、标点、数据类型、严密语法等,它与 SQL 有相同表示,现重点介绍:
1) 、数据类型:
标量 (scalar) 数据类型没有内部组件,他们大致可分为以下四类:
. number
. character
. date/time
. boolean
表 1 显示了数字数据类型;表 2 显示了字符数据类型;表 3 显示了日期和布尔数据类型。
表1 Scalar Types:Numeric
Datatype
Range
Subtypes
description
BINARY_INTEGER
[-214748364, 2147483647]
NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
用于存储单字节整数。
要求存储长度低于NUMBER值。
用于限制范围的子类型(SUBTYPE):
NATURAL:用于非负数
POSITIVE:只用于正数
NATURALN:只用于非负数和非NULL值
POSITIVEN:只用于正数,不能用于NULL值
SIGNTYPE:只有值:-1、0或1.
NUMBER
[1.0E-130,1.0E126)
DEC
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT
存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法:
number[ ( [,])]。
缺省的精度是38,scale是0.
PLS_INTEGER
[-214748364, 2147483647]
与BINARY_INTEGER基本相同,但采用机器运算时,PLS_INTEGER提供更好的性能 。
NUMBER 数字型 能存放整数值和实数值,并且可以定义精度和取值范围
BINARY_INTEGER 数字型 可存储带符号整数,为整数计算优化性能
DEC 数字型 NUMBER 的子类型,小数
DOUBLE PRECISION 数字型 NUMBER 的子类型,高精度实数
INTEGER 数字型 NUMBER 的子类型,整数
INT 数字型 NUMBER 的子类型,整数
NUMERIC 数字型 NUMBER 的子类型,与 NUMBER 等价
REAL 数字型 NUMBER 的子类型,与 NUMBER 等价
SMALLINT 数字型 NUMBER 的子类型,取值范围比 INTEGER 小
表2 字符数据类型
datatype
rang
subtype
description
CHAR
最大长度32767字节
CHARACTER
存储定长字符串,如果长度没有确定,缺省是1
LONG
最大长度2147483647字节
存储可变长度字符串
RAW
最大长度32767字节
用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,RAW数据不在字符集之间进行转换。
LONGRAW
最大长度2147483647
与LONG数据类型相似,同样他也不能在字符集之间进行转换。
ROWID
18个字节
与数据库ROWID伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。
VARCHAR2
最大长度32767字节
STRINGVARCHAR
与VARCHAR数据类型相似,存储可变长度的字符串。声明方法与VARCHAR相同
CHAR 字符型 定长字符串
LONG 字符型 变长字符串,最大长度可达 32,767
ROWID ROWID 存放数据库的行号
VARCHAR2 字符型 存放可变长字符串,有最大长度
表3 DATE和BOOLEAN
datatype
range
description
BOOLEAN
TRUE/FALSE
存储逻辑值TRUE或FALSE,无参数
DATE
01/01,4712 BC 到12/31, 9999 AD
存储固定长的日期和时间值,日期值中包含时间
DATE 日期型 以数据库相同的格式存放日期值
BOOLEAN 布尔型 TRUE OR FALSE
LOB 数据类型
LOB( 大对象 ,Large object) 数据类型用于存储类似图像,声音这样的大型数据对象, LOB 数据对象可以是二进制数据也可以是字符数据,其最大长度不超过 4G 。 LOB 数据类型支持任意访 问方式, LONG 只支持顺序访问方式。 LOB 存储在一个单独的位置上,同时一个 "LOB 定位符 "(LOB locator) 存储在原始的表中,该定位符是一个指向实际数据的指针。在 PL/SQL 中操作 LOB 数据对象使用 ORACLE 提供的包 DBMS_LOB.LOB 数据类型可分为以下四类:
. BFILE
. BLOB
. CLOB
. NCLOB
2)操作符
与其他程序 设计 语言相同, PL/SQL 有一系列操作符。操作符分为下面几类:
. 算术操作符
. 关系操作符
. 比较操作符
. 逻辑操作符
算术操作符如表 4 所示
operator
operation
+
加
-
减
/
除
*
乘
**
乘方
关系操作符主要用于条件判断语句或用于 where 子串中,关系操作符检查条件和结果是否为 true 或 false, 表 5 是 PL/SQL 中的关系操作符
operator
operation
<
小于操作符
<=
小于或等于操作符
>
大于操作符
>=
大于或等于操作符
=
等于操作符
!=
不等于操作符
<>
不等于操作符
:=
赋值操作符
表6 显示的是比较操作符
perator
operation
IS NULL
如果操作数为NULL返回TRUE
LIKE
比较字符串值
BETWEEN
验证值是否在范围之内
IN
验证操作数在设定的一系列值中
表7显示的是逻辑操作符
operator
operation
AND
两个条件都必须满足
OR
只要满足两个条件中的一个
NOT
取反
pl/sql number型位操作
与操作:bitand(a,b)
- Oracle扩展PL/SQL简介(一)
- Oracle扩展PL/SQL简介
- Oracle扩展PL/SQL简介(二)
- Oracle扩展PL/SQL简介(四)
- Oracle扩展PL/SQL简介(五)
- Oracle扩展PL/SQL简介(三)
- Oracle扩展PL/SQL简介(六)
- oracle PL/SQL简介
- Oracle PL/SQL简介
- 十九、oracle pl/sql简介
- 十九 oracle pl/sql 简介
- 十九、oracle pl/sql简介
- ORACLE:PL/SQL 程序设计简介
- 十九、oracle pl/sql简介
- 十九、oracle pl/sql简介
- 【Oracle】Oracle PL/SQL编程简介2
- Oracle PL/SQL の 一
- Oracle:PL*SQL 编程(一)
- JAVA 冒泡排序
- (转)C程序的编译过程
- 无刷新多文件上传系统
- 有一种人 不值得
- 希望这是公平的审判
- Oracle扩展PL/SQL简介(一)
- 火影探讨:佐助对决雷影
- redflag5.0安装Apache+MySQL+PHP实录
- Trying out LVM2 on Ubuntu
- ubuntu9.0.4 安装virtualbox
- Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用
- MySQL常用的一些有效命令罗列
- virtualbox 下通过ghost安装xp
- WUBI高级应用篇