Oracle数据类型NUMBER

Oracle   number   datatype  

 

语法:NUMBER[(precision   [,   scale])]
简称:precision   -->   p
            scale      -->   s

NUMBER(p,   s)
范围:   1   <=   p   <=38,   -84   <=   s   <=   127
保存数据范围:-1.0e-130   <=   number   value   <   1.0e+126        
保存在机器内部的范围:   1   ~   22   bytes

p为有效位:从左边第一个不为0的数算起的位数。
s分三种情况:
s   >   0
      精确到小数点右边s位,并四舍五入。然后检验有效位是否   <=   p。
s   <   0
      精确到小数点左边s位,并四舍五入。然后检验有效位是否   <=   p   +   |s|。
s   =   0
      此时NUMBER表示整数。    

例子:
Actual   Data       Specified   As     Stored   As
----------------------------------------
123.89                NUMBER                123.89
123.89                NUMBER(3)            124
123.89                NUMBER(6,2)         123.89
123.89                NUMBER(6,1)          123.9
123.89                NUMBER(4,2)          exceeds   precision   (有效位为5,   5   >   4)
123.89                NUMBER(6,-2)        100
.01234                NUMBER(4,5)         .01234   (有效位为4) 
.000127               NUMBER(4,5)        .00013
.0000012             NUMBER(2,7)        .0000012
.00000123           NUMBER(2,7)        .0000012
1.2e-4                  NUMBER(2,5)        0.00012
1.2e-5                  NUMBER(2,5)        0.00001
123.2564             NUMBER                123.2564
1234.9876           NUMBER(6,2)        1234.99
12345.12345       NUMBER(6,2)         Error   (有效位为5+2   >   6)
1234.9876            NUMBER(6)           1235   (s没有表示s=0)
12345.345            NUMBER(5,-2)       12300
1234567               NUMBER(5,-2)       1234600
12345678             NUMBER(5,-2)       Error   (有效位为8   >   7)
123456789           NUMBER(5,-4)       123460000
1234567890         NUMBER(5,-4)       Error   (有效位为10   >   9)
12345.58              NUMBER(*,   1)     12345.6
0.1                        NUMBER(4,5)        Error   (0.10000,   有效位为5   >   4)
0.01234567          NUMBER(4,5)        0.01235
0.09999                NUMBER(4,5)        0.09999

NUMBEROracle数据库中的一种数据类型,用于存储数值数据。它可以存储整数、小数和负数,并且具有可调节的精度和小数位数。 以下是关于Oracle NUMBER数据类型的一些重要信息: - NUMBER类型的数据范围是1×10^-130 ~ 1 × 10^126,超出这个范围会导致错误。 - NUMBER类型的定义可以包括精度和小数位数,格式为NUMBER(precision, scale)。其中,precision表示有效位数(取值范围为1~38),scale表示小数点后的位数(取值范围为-84~127)。 - 当精度超出定义时,Oracle会进行四舍五入操作。 - 一个NUMBER类型的数据在数据库中占用1~22个字节的存储空间,具体取决于精度和小数位数的定义。 - 实际数据存储类型与定义的精度和小数位数有关。例如,存储值为123.89的NUMBER类型数据,如果定义为NUMBER(3),则存储为124;如果定义为NUMBER(5, 4),则存储为123.8912。 - 如果定义的精度和小数位数超过实际数据的范围,Oracle会进行截断或四舍五入操作。 下面是一个示例,演示了如何在Oracle中使用NUMBER数据类型: ```sql CREATE TABLE my_table ( id NUMBER(10), value NUMBER(8, 2) ); INSERT INTO my_table (id, value) VALUES (1, 123.45); INSERT INTO my_table (id, value) VALUES (2, 678.90); SELECT * FROM my_table; ``` 这个示例创建了一个名为my_table的表,其中包含id和value两个列,它们的数据类型分别为NUMBER(10)和NUMBER(8, 2)。然后,通过INSERT语句向表中插入了两行数据。最后,使用SELECT语句检索并显示了表中的所有数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值