‘壹’ ORACLE 数据库中的NUMBER类型的字段为NULL时怎么处理
1、创建一张数据库测试表,用于演示null空值的查询。
‘贰’ oracle字段类型NUMBER(38,3),括号中两个数字分别表示什么
38表示这个数据的有效位数(精度),3表示三个小数位(刻度)。
oracle中number数据类型可以表示为:NUMBER (p,s),其中p和s范围:
p:1-38
s:-84-127
number(p,s),s大于0,表示有效位最大为p,小数位最多为s,小数点右边s位置开始四舍五入,若s>p,小数点右侧至少有s-p个0填充(必须从小数点处开始并连续)。
number(p,s),s小于0,表示有效位最大为p+|s|,没有小数位,小数点左边s位置开始四舍五入,小数点左侧s位,每一位均为0。
(2)oracle数据库number扩展阅读:
NUMBER类型的子类
1、oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。
2、int类型只能存储整数;number可以存储浮点数,也可以存储整数。
3、在oracle数据库建表的时候,decimal,numeric不带精度,oracle会自动把它处理成INTEGER;带精度,oracle会自动把它处理成number。
4、Oracle只用NUMBER(m,n)就可以表示任何复杂的数字数据。
5、decimal,numeric,int等都为SQL、DB2等数据库的数据类型,ORACLE为了兼容才将其引入;但实际上在ORACLE内部还是以NUMBER的形式将其存入。
‘叁’ ORACLENUMBER类型详解
> NUMBER类型细讲
Oracle number datatype 语法 NUMBER[(precision [ scale])]
简称 precision –> p
scale –> s
NUMBER(p s)
范围 <= p <= <= s <=
保存数据范围 e <= number value < e+
保存在机器内部的范围 ~ bytes
有效为 从左边第一个不为 的数算起的位数
s的情况
s >
精确到小数点右边s位 并四舍五入 然后检验有效位能不能 <= p
s <
精确到小数点左边s位 并四舍五入 然后检验有效位能不能 <= p + s
s =
此时NUMBER表示整数
eg:
Actual Data Specified As Stored As
—————————————
NUMBER
NUMBER( )
NUMBER( )
NUMBER( )
NUMBER( ) exceeds precision (有效位为 > )
NUMBER( )
NUMBER( ) (有效位为 )
NUMBER( )
NUMBER( )
NUMBER( )
NUMBER( )
e NUMBER( )
e NUMBER( )
NUMBER
NUMBER( )
NUMBER( ) Error (有效位为 + > )
NUMBER( ) (s没有表示s= )
NUMBER( )
NUMBER( )
NUMBER( ) Error (有效位为 > )
NUMBER( )
NUMBER( ) Error (有效位为 > )
NUMBER(* )
NUMBER( ) Error ( 有效位为 > )
NUMBER( )
lishixin/Article/program/Oracle/201311/18655
‘肆’ oracle数据库中“Number”是什么类型
相当于java的int double类型x0dx0aoracle包括三种数据类型:x0dx0a1)数值:number或number(p,s)x0dx0ap:精度,s:刻度(小数位数)x0dx0a1234.567 number(6,2) --------> 1234.57x0dx0a0.001234 number(2,4) --------> 0.0012x0dx0a1234 number(3,-1)--------> 1230x0dx0a1204 number(3) --------> 超出精度x0dx0a2)字符:char, varchar, varchar2x0dx0achar与varchar的区别:x0dx0a1.内容存储时占用的存储空间;x0dx0a定长:char (声明固定长度)x0dx0a'a' -> char(10) -> 10x0dx0a'ab' -> char(10) -> 10x0dx0a变长:varchar (根据实际存储的长度为准)x0dx0a'a' -> varchar(10) -> 1x0dx0a'ab' -> varchar(10) -> 2x0dx0a2.所允许存储的最大长度;x0dx0achar: 2000x0dx0avarchar: 4000x0dx0avarchar与varchar2的区别:x0dx0a1.制定厂商不同:x0dx0avarchar:ANSIx0dx0avarchar2:Oraclex0dx0a2.承诺不同;x0dx0a3)日期:date ༽-JAN-08'x0dx0a世纪,年,月,日,时,分,秒
‘伍’ oracle中number类型默认长度是多少
Number类型是oralce的数值类型,存储的数值的精度可以达到38位。Number是一种变长类型,长度为0-22字节。取值范围为:10^(-130)——10^126(不包括)。以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。
语法:
Number(p,s):
p和s都是可选的。
p指精度(precision),即总位数。默认情况下精度为38。精度的取值范围为1~38。
s指小数位(scale),小数点右边的位数。小数点位数的合法值为-84~127。小数位的默认值由精度来决定。如果没有指定精度,小数位默认为最大的取值区间。如果指定了精度,没有指定小数位。小数位默认为0(即没有小数位)。
精度和小数位不会影响数据如何存储,只会影响允许哪些数值及数值如何舍入。