【DB.PL/SQL】数据类型 —— 数字

本文详细介绍了Oracle数据库中NUMBER数据类型的使用方法,包括其表示整数、定点数和浮点数的能力,以及如何通过精度和刻度进行约束。此外,还列举了Oracle提供的多种数字子类型及其与NUMBER类型的关系。
摘要由CSDN通过智能技术生成

数字

数据类型 —— NUMBER

NUMBER类型可以保存几乎任何尺度的整数,定点数或者浮点数。NUMBER的算术运算使用一种与平台无关的方式实现的,无论底层硬件平台式什么样的,NUMBER的算术运算都会得到相同的结果。

Oracle数据库最多会分配能容纳40个数字的空间。NUMBER变量取值从 10(-130)到10(126)-1。


约束精度和刻度:

NUMBER(precision, scale)

声明的是一个定点数。其中precision是这个数值中总的有效数字的个数。scale表明小数点右面(正刻度)或者左面(负刻度)的数字个数。precison和scale两个值都必须是整数直接量。precesion的合法取值范围从1到38,scale的合法取值范围是从-84到127.

例如: NUMBER(9,2),这个变量的最大的取值是9 999 999.99:




表示整数值:

刻度scale是可选的,缺省值是0.

例如:

x NUMBER(9, 0);
x NUMBER(9);

都是包含9个有效数字的整数变量,取值范围为 -999 999 999到999 999 999


  • 在声明中仅使用NUMBER,我们就可以表示浮点值
  • 通过精度和刻度的约束,就可以表示定点小数
  • 通过把刻度设置成0或者忽略它,可以表示整数值

数据类型 —— 


数字子类型

Oracle同样提供了若干数字子类型。在多数情况下,这些子类型不过是之前讨论的那些基础类型的别名而已:

预定义的数字子类型:

子类型兼容性对应Oracle类型/注意事项
DEC(precision, scale)ANSINUMBER(precision, scale)
DECIMAL(precision, scale)IBMNUMBER(precision, scale)
DOUBLE PRECISIONANSINUMBER,精度达126个二进制数字
FLOATANSI,IBMNUMBER,精度达126个二进制数字
FLOAT(binary_precision)ANSI,IBMNUMBER,进度最多达126个二进制数字
INTANSINUMBER(38)
INTEGERANSI,IBMNUMBER(38)
NATURALN/APLS_INTEGER,只允许非负值
NATURALNN/A和NATURAL一样,但是一个额外的约束是不能为NULL
NUMERIC(precision, scale)ANSINUMBER(precision, scale)
POSITIVEN/APLS_INTEGER,只允许正数
POSITIVENN/A和POSITIVE一样,一个额外的约束是不能为NULL
REALANSINUMBER,精度达63个二进制数
SIGNTYPEN/APLS_INTEGER,只能是 -1,0和1
SMALLINTANSI,IBMNUMBER(38)

数字操作







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值