标量(scalar)数据类型
标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:
. number
. character
. date/time
. boolean
表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。
[b]表1 Scalar Types:Numeric
[/b]
| [b]Datatype[/b] |
[b]Range[/b] |
[b]Subtypes[/b] |
[b]description[/b] |
| BINARY_INTEGER |
-214748-2147483647 |
NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
|
用于存储单字节整数。
要求存储长度低于NUMBER值。
用于限制范围的子类型(SUBTYPE):
NATURAL:用于非负数
POSITIVE:只用于正数
NATURALN:只用于非负数和非NULL值
POSITIVEN:只用于正数,不能用于NULL值
SIGNTYPE:只有值:-1、0或1. |
| NUMBER |
1.0E-130-9.99E125 |
DEC
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT |
存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法:
number[( [,])]。
缺省的精度是38,scale是0.
|
| PLS_INTEGER |
-2147483647-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小
VARCHAR2 字符型 存放可变长字符串,有最大长度
[b] 表2 字符数据类型[/b]
| [b]datatype[/b] |
[b]rang[/b] |
[b]subtype[/b] |
[b]description[/b] |
| CHAR |
最大长度32767字节 |
CHARACTER |
存储定长字符串,如果长度没有确定,缺省是1 |
| LONG |
最大长度2147483647字节 |
|
存储可变长度字符串 |
| RAW |
最大长度32767字节 |
|
用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,RAW数据不在字符集之间进行转换。 |
| LONGRAW |
最大长度2147483647 |
|
与LONG数据类型相似,同样他也不能在字符集之间进行转换。 |
| ROWID |
18个字节 |
|
与数据库ROWID伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。 |
| VARCHAR2 |
最大长度32767字节 |
STRINGVARCHAR |
与VARCHAR数据类型相似,存储可变长度的字符串。声明方法与VARCHAR相同 |
CHAR 字符型 定长字符串
LONG 字符型 变长字符串,最大长度可达32,767
DATE 日期型 以数据库相同的格式存放日期值
BOOLEAN 布尔型 TRUE OR FALSE
ROWID ROWID 存放数据库的行号
[b]表3 DATE和BOOLEAN
[/b]
| [b]datatype[/b] |
[b]range [/b] |
[b]description[/b] |
| BOOLEAN |
TRUE/FALSE |
存储逻辑值TRUE或FALSE,无参数 |
| DATE |
01/01/4712 BC |
存储固定长的日期和时间值,日期值中包含时间 |
LOB数据类型
LOB(大对象,Large object) 数据类型用于存储类似图像,声音这样的大型数据对象,LOB数据对象可以是二进制数据也可以是字符数据,其最大长度不超过4G。LOB数据类型支持任意访问方式,LONG只支持顺序访问方式。LOB存储在一个单独的位置上,同时一个"LOB定位符"(LOB locator)存储在原始的表中,该定位符是一个指向实际数据的指针。在PL/SQL中操作LOB数据对象使用[url=http://www.qqread.com/oracle/tech/index.html]ORACLE[/url]提供的包DBMS_LOB.LOB数据类型可分为以下四类:
. BFILE
. BLOB
. CLOB
. NCLOB
[b] 操作符[/b]
与其他程序[url=http://www.qqread.com/keywords/photoshop_e.html]设计[/url]语言相同,PL/SQL有一系列操作符。操作符分为下面几类:
. 算术操作符
. 关系操作符
. 比较操作符
. 逻辑操作符
算术操作符如表4所示
| [b]operator[/b] |
[b]operation[/b] |
| + |
加 |
| - |
减 |
| / |
除 |
| * |
乘 |
| ** |
乘方 |
关系操作符主要用于条件判断语句或用于where子串中,关系操作符检查条件和结果是否为true或false,表5是PL/SQL中的关系操作符
| [b]operator[/b] |
[b]operation[/b] |
| < |
小于操作符 |
| <= |
小于或等于操作符 |
| > |
大于操作符 |
| >= |
大于或等于操作符 |
| = |
等于操作符 |
| != |
不等于操作符 |
| <> |
不等于操作符 |
| := |
赋值操作符 |
表6 显示的是比较操作符
| [b]operator [/b] |
[b]operation[/b] |
| IS NULL |
如果操作数为NULL返回TRUE |
| LIKE |
比较字符串值 |
| BETWEEN |
验证值是否在范围之内 |
| IN |
验证操作数在设定的一系列值中 |
表7.8显示的是逻辑操作符
| [b]operator[/b] |
[b]operation[/b] |
| AND |
两个条件都必须满足 |
| OR |
只要满足两个条件中的一个 |
| NOT |
取反 |