服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Mssql|Oracle|Redis|

服务器之家 - 数据库 - Oracle - PL/SQL数据类型及操作符

PL/SQL数据类型及操作符

2019-10-27 16:30脚本之家 Oracle

PL/SQL数据类型及操作符

标量(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

存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法:
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 字符数据类型

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 取反

延伸 · 阅读

精彩推荐
  • OracleOracle系统表外键的更名

    Oracle系统表外键的更名

    Oracle中表的外键是保证系统参照完整性的手段,而参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。外键涉及到两个表,其中一个称...

    Oracle教程网2262019-10-25
  • Oracle在Oracle网络结构解决连接问题

    在Oracle网络结构解决连接问题

    在Oracle网络结构解决连接问题。最近看到好多人说到tns或者数据库不能登录等问题,就索性总结了下面的文档。...

    Oracle教程网2652019-10-22
  • OracleOracle对两个数据表交集的查询

    Oracle对两个数据表交集的查询

    Oracle 关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就是在SQL中几乎...

    Oracle技术网3972019-10-24
  • OracleOracle中大批量删除数据的方法

    Oracle中大批量删除数据的方法

    Oracle中大批量删除数据的方法 ...

    Oracle教程网4462019-10-27
  • OracleOracle动态交叉表生成

    Oracle动态交叉表生成

    Oracle是应用最广的大型数据库,而在范式下进行Oracle数据库设计则可以大大减少数据冗余,使数据库维护更方便,可惜范式下的数据表一般不能直接输出。...

    Oracle教程网1962019-10-21
  • Oracle数据库Oracle数据的异地的自动备份

    数据库Oracle数据的异地的自动备份

    在大型商业应用中,数据的异地容灾备份十分重要,也必不可少。笔者根据自己的实践经验,设计了一套简洁地实现异地数据自动备份的方法,可供 数据库...

    Oracle教程网4842019-10-21
  • OracleOracle Index 的三个问题

    Oracle Index 的三个问题

    索引(Index)是常见的数据库对象,它的设置好坏、使用是否得当,极大地影响数据库应用程序和Database的性能。虽然有许多资料讲索引的用法,DBA和Developer们...

    Oracle教程网4102019-10-24
  • OracleOracle9i数据库异常关闭后的启动

    Oracle9i数据库异常关闭后的启动

    Oracle9i数据库异常关闭后的启动。Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为: connection can not permitted, shut in progr...

    Oracle教程网4972019-10-22