Database 数字、数字(3)、数字(3,2)之间的区别是什么

Database 数字、数字(3)、数字(3,2)之间的区别是什么,database,oracle,Database,Oracle,我知道他们之间的基本区别,我想知道 如果我没有指定精度和比例并将数据类型定义为number 指定的精度和比例的默认值是什么 create table a(id number); create table b(id number(3)); 上述两个查询都创建了一个具有列和数字数据类型的表,但它们的区别是什么 1绩效观点 2数据库如何在内部处理它 3从Oracle的角度来看,将数字指定为数据类型比将数字指定为数据类型有任何优势吗3 数字数据类型 数字数据类型存储零以及绝对值为1.0 x 10-1

我知道他们之间的基本区别,我想知道

如果我没有指定精度和比例并将数据类型定义为number 指定的精度和比例的默认值是什么

create table a(id number);

create table b(id number(3));
上述两个查询都创建了一个具有列和数字数据类型的表,但它们的区别是什么 1绩效观点 2数据库如何在内部处理它
3从Oracle的角度来看,将数字指定为数据类型比将数字指定为数据类型有任何优势吗3

数字数据类型

数字数据类型存储零以及绝对值为1.0 x 10-130到但不包括1.0 x 10126的正负固定数字。如果指定的算术表达式的值的绝对值大于或等于1.0 x 10126,则Oracle将返回错误。每个数字值需要1到22个字节

使用以下形式指定定点编号:

NUMBER(p,s)
NUMBER(p)
NUMBER 
其中:

p是精度,或有效十进制数字的总数,其中最有效的数字是最左边的非零数字,最低有效的数字是最右边的已知数字。Oracle保证数字的可移植性,精度高达20位100进制数字,相当于39位或40位十进制数字,具体取决于小数点的位置

s是刻度,或从小数点到最低有效位的位数。刻度的范围从-84到127

正刻度是小数点右侧的有效位数,包括最低有效位数

负刻度是小数点左侧的有效位数,但不包括最低有效位数。对于负刻度,最低有效位在小数点的左侧,因为实际数据四舍五入到小数点左侧的指定位数。例如,规格为10,-2意味着四舍五入到数百

比例可以大于精度,最常见的情况是使用e表示法。当比例大于精度时,精度指定小数点右侧的最大有效位数。例如,定义为NUMBER4,5的列要求小数点后的第一个数字为零,并将所有值舍入到小数点后的第五个数字之后

最好指定定点数字列的比例和精度,以便对输入进行额外的完整性检查。指定比例和精度不会强制将所有值设置为固定长度。如果某个值超过精度,Oracle将返回一个错误。如果某个值超过刻度,则Oracle将其舍入

使用以下形式指定一个整数:

NUMBER(p,s)
NUMBER(p)
NUMBER 
这表示精度为p且刻度为0的定点数字,相当于NUMBERp,0

使用以下形式指定浮点数:

NUMBER(p,s)
NUMBER(p)
NUMBER 
缺少精度和刻度指示器可指定Oracle编号的最大范围和精度

具有精度p和刻度s的数字。精度p的范围为1到38。刻度s的范围为-84到127