标量(scalar)数据类型
标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:
. number
. character
. date/time
. boolean
表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。
表1 Scalar Types:Numeric
Datatype | Range | Subtypes | description |
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 |
存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法: |
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 字符型 存放可变长字符串,有最大长度
表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
DATE 日期型 以数据库相同的格式存放日期值
BOOLEAN 布尔型 TRUE OR FALSE
ROWID ROWID 存放数据库的行号
表3 DATE和BOOLEAN
datatype | range | description |
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数据对象使用ORACLE提供的包DBMS_LOB.LOB数据类型可分为以下四类:
. BFILE
. BLOB
. CLOB
. NCLOB
操作符
与其他程序设计语言相同,PL/SQL有一系列操作符。操作符分为下面几类:
. 算术操作符
. 关系操作符
. 比较操作符
. 逻辑操作符
算术操作符如表4所示
operator | operation |
+ | 加 |
- | 减 |
/ | 除 |
* | 乘 |
** | 乘方 |
关系操作符主要用于条件判断语句或用于where子串中,关系操作符检查条件和结果是否为true或false,表5是PL/SQL中的关系操作符
operator | operation |
< | 小于操作符 |
<= | 小于或等于操作符 |
> | 大于操作符 |
>= | 大于或等于操作符 |
= | 等于操作符 |
!= | 不等于操作符 |
<> | 不等于操作符 |
:= | 赋值操作符 |
表6 显示的是比较操作符
operator | operation |
IS NULL | 如果操作数为NULL返回TRUE |
LIKE | 比较字符串值 |
BETWEEN | 验证值是否在范围之内 |
IN | 验证操作数在设定的一系列值中 |
表7.8显示的是逻辑操作符
operator | operation |
AND | 两个条件都必须满足 |
OR | 只要满足两个条件中的一个 |
NOT | 取反 |