Oracle數(shù)據(jù)庫中,我們會經(jīng)常見到類似于Number(8,2)的類型,這個類型代表什么,又與int類型有什么區(qū)別呢,今天跟大家一起分享一下。
Number(precision,scale)中:
(1)precision(精度) 表示數(shù)字中的有效位,如果沒有指定數(shù)字大小的話,Oracle默認(rèn)使用38作為精度.
(2)scale(刻度) ,如果sacle大于0,表示數(shù)字精確到小數(shù)點右邊的位數(shù);scale默認(rèn)設(shè)置為0;如果scale小于零,Oracle將把該數(shù)字取舍到小數(shù)點左邊的指定位數(shù)。
Precision表示有效位數(shù),有效數(shù)位:從左邊第一個不為0的數(shù)算起,小數(shù)點和負(fù)號不計入有效位數(shù);scale表示精確到多少位,指精確到小數(shù)點左邊或右邊多少位(+-決定)。
Number整數(shù)部分允許的長度為(percision-scale),無論scale是正數(shù)還是負(fù)數(shù)
(1)當(dāng)一個數(shù)的整數(shù)部分的長度 > p-s 時,Oracle就會報錯

(2)當(dāng)一個數(shù)的小數(shù)部分的長度 > s 時,Oracle就會舍入。
(3)當(dāng)s(scale)為負(fù)數(shù)時,Oracle就對小數(shù)點左邊的s個數(shù)字進(jìn)行舍入。
(4)當(dāng)s > p 時, p表示小數(shù)點后第s位向左最多可以有多少位數(shù)字,如果大于p則Oracle報錯,小數(shù)點后s位向右的數(shù)字被舍入
與int的區(qū)別
(1) oracle本來就沒有int類型,為了與別的數(shù)據(jù)庫兼容,新增了int類型作為number類型的子集。
(2)int類型只能存儲整數(shù);number可以存儲浮點數(shù),也可以存儲整數(shù);number(8,1)存儲小數(shù)位為1位,總長度為8的浮點數(shù),如果小數(shù)位數(shù)不足,則用0補(bǔ)全
(3)number(8)存儲總長度為8的整數(shù);
(4)int相當(dāng)于number(22),存儲總長度為22的整數(shù)。
Oracle 自增 不同于mysql可以直接設(shè)置自增,需要建立序列,和觸發(fā)器。
-
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2065瀏覽量
63529 -
Oracle
+關(guān)注
關(guān)注
2文章
307瀏覽量
38931 -
MySQL
+關(guān)注
關(guān)注
1文章
928瀏覽量
29737 -
oracle數(shù)據(jù)庫
+關(guān)注
關(guān)注
0文章
17瀏覽量
8029
發(fā)布評論請先 登錄
labview 中數(shù)據(jù)庫的問題
labview 如何遠(yuǎn)程訪問Oracle數(shù)據(jù)庫?
labview和access數(shù)據(jù)庫數(shù)據(jù)類型轉(zhuǎn)換問題
什么是支持數(shù)據(jù)庫,什么是中宏數(shù)據(jù)庫
oracle數(shù)據(jù)庫應(yīng)用領(lǐng)域
Oracle數(shù)據(jù)類型與表的管理
oracle數(shù)據(jù)庫如何連接
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)-oracle數(shù)據(jù)庫報錯無法打開的數(shù)據(jù)恢復(fù)案例
oracle修改數(shù)據(jù)庫表字段類型
oracle的數(shù)據(jù)類型有哪些
oracle數(shù)據(jù)庫的使用方法
oracle數(shù)據(jù)庫的基本操作
Oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫delete刪除的數(shù)據(jù)恢復(fù)方法
Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫啟庫報錯的數(shù)據(jù)恢復(fù)案例
oracle數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)庫誤執(zhí)行錯誤truncate命令如何恢復(fù)數(shù)據(jù)?
分享一下Oracle數(shù)據(jù)庫中的Number(p,s)數(shù)據(jù)類型
評論