首页 > 数据库 > Oracle > 正文

PL/SQL数据类型及操作符

2024-08-29 13:57:17
字体:
来源:转载
供稿:网友
标量(scalar)数据类型

  标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:

   . number
   . character
   . date/time
   . boolean

  表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。

  表1 Scalar Types:Numeric

DatatypeRangeSubtypesdescription

BINARY_INTEGER-214748-2147483647NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
用于存储单字节整数。
要求存储长度低于NUMBER值。
用于限制范围的子类型(SUBTYPE):
 NATURAL:用于非负数
 POSITIVE:只用于正数
 NATURALN:只用于非负数和非NULL值
 POSITIVEN:只用于正数,不能用于NULL值
 SIGNTYPE:只有值:-1、0或1.

NUMBER1.0E-130-9.99E125DEC
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 字符型 存放可变长字符串,有最大长度

  表2 字符数据类型

datatyperangsubtypedescription

CHAR最大长度32767字节 CHARACTER存储定长字符串,如果长度没有确定,缺省是1

LONG最大长度2147483647字节 存储可变长度字符串

RAW 最大长度32767字节 用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,RAW数据不在字符集之间进行转换。

LONGRAW最大长度2147483647 与LONG数据类型相似,同样他也不能在字符集之间进行转换。

ROWID18个字节 与数据库ROWID伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。

VARCHAR2最大长度32767字节STRINGVARCHAR与VARCHAR数据类型相似,存储可变长度的字符串。声明方法与VARCHAR相同

  CHAR 字符型 定长字符串
  LONG 字符型 变长字符串,最大长度可达32,767
  DATE 日期型 以数据库相同的格式存放日期值
  BOOLEAN 布尔型 TRUE OR FALSE
  ROWID ROWID 存放数据库的行号


  表3 DATE和BOOLEAN

datatyperange description

BOOLEANTRUE/FALSE存储逻辑值TRUE或FALSE,无参数

DATE01/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所示

operatoroperation

+ 加

- 减

/ 除

* 乘

**乘方


  关系操作符主要用于条件判断语句或用于where子串中,关系操作符检查条件和结果是否为true或false,表5是PL/SQL中的关系操作符

operatoroperation

< 小于操作符

<= 小于或等于操作符

> 大于操作符

>=大于或等于操作符

= 等于操作符

!= 不等于操作符

<> 不等于操作符

:= 赋值操作符


  表6 显示的是比较操作符

operator operation

IS NULL如果操作数为NULL返回TRUE

LIKE比较字符串值

BETWEEN验证值是否在范围之内

IN验证操作数在设定的一系列值中


  表7.8显示的是逻辑操作符

operatoroperation

AND 两个条件都必须满足

OR只要满足两个条件中的一个

NOT取反


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表