不加默認(rèn)值當(dāng)然不會(huì)自動(dòng)為0了。讀取的時(shí)候值為NULL
目前成都創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、蘇仙網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
定義時(shí)注明小數(shù)位例如 number(18,4) 4即為小數(shù)位。
想要默認(rèn)值是0可以在定義字段時(shí)候在后面加上default 0
例 create table test(
id number(10,2)default 0,
name varchar2(20)
);
再執(zhí)行insert into test(name) values('a');后
查詢(xún) select id from test where name='a';
結(jié)果就是0.00
oracle的number類(lèi)型帶括號(hào)時(shí)如:NUMBER(P,S),只是用來(lái)指定所存儲(chǔ)數(shù)據(jù)的精度等制約條件的,當(dāng)所存儲(chǔ)的數(shù)據(jù)超出你預(yù)先指定的精度的時(shí)候,Oracle會(huì)給你返回一個(gè)錯(cuò)誤。反過(guò)來(lái)說(shuō),但你不指定精度等制約條件的是時(shí)候,也就是你默認(rèn)使用Oracle自身所設(shè)定的最大精度等制約條件,當(dāng)然是可以用來(lái)存儲(chǔ)負(fù)數(shù)或小數(shù)的。如下,Oracle官方文檔上是這樣描述的。(描述中的precision 就是上文中的P,scale就是上文中的S)
Specify a floating-point number using the following form:
NUMBER
The absence of precision and scale designators specifies the maximum range and
precision for an Oracle number.
還是number型。
參考以下定義:
NUMBER ( precision, scale)
precision表示數(shù)字中的有效位。如果沒(méi)有指定precision的話(huà),Oracle將使用38作為精度。
scale表示數(shù)字小數(shù)點(diǎn)右邊的位數(shù),scale默認(rèn)設(shè)置為0. 如果把scale設(shè)成負(fù)數(shù),Oracle將把該數(shù)字取舍到小數(shù)點(diǎn)左邊的指定位數(shù)。
oracle 關(guān)于數(shù)字存儲(chǔ)的主要有下面幾個(gè):
NUMBER(P,S) 數(shù)字類(lèi)型 P為整數(shù)位,S為小數(shù)位
DECIMAL(P,S) 數(shù)字類(lèi)型 P為整數(shù)位,S為小數(shù)位
INTEGER 整數(shù)類(lèi)型 小的整數(shù)
FLOAT 浮點(diǎn)數(shù)類(lèi)型 NUMBER(38),雙精度
REAL 實(shí)數(shù)類(lèi)型 NUMBER(63),精度更高
數(shù)據(jù)類(lèi)型定義一下,例如number(p.s)
數(shù)據(jù)的總位數(shù)是p
對(duì)s分2種情況:
1. s0
精確到小數(shù)點(diǎn)右邊s位,并四舍五入。然后檢驗(yàn)有效數(shù)位是否=p;如果sp,小數(shù)點(diǎn)右邊至少有s-p個(gè)0填充。
2. s0
精確到小數(shù)點(diǎn)左邊s位,并四舍五入。然后檢驗(yàn)有效數(shù)位是否=p+|s|
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error
1234.9876 NUMBER(6) 1235
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error
123456789 NUMBER(5,-4) 123460000
1234567890 NUMBER(5,-4) Error
12345.58 NUMBER(*, 1) 12345.6
0.1 NUMBER(4,5) Error
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
number(10,2)就是總共10位數(shù),并精確到小數(shù)點(diǎn)后兩位。希望對(duì)你有幫助。