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

来源:互联网 发布:淘宝手机购物 编辑:程序博客网 时间:2024/05/03 04:50

数字

数据类型 —— 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一样,但是一个额外的约束是不能为NULLNUMERIC(precision, scale)ANSINUMBER(precision, scale)POSITIVEN/APLS_INTEGER,只允许正数POSITIVENN/A和POSITIVE一样,一个额外的约束是不能为NULLREALANSINUMBER,精度达63个二进制数SIGNTYPEN/APLS_INTEGER,只能是 -1,0和1SMALLINTANSI,IBMNUMBER(38)

数字操作







0 0
原创粉丝点击